【发布时间】:2015-09-26 16:37:56
【问题描述】:
当我尝试从 ID="USERNAME" 的文本框中插入数据时,我无法将数据插入数据库,即选择 VALUES 作为@USERNAME 例如:InsertCommand="INSERT INTO [Table12] ( [USERNAME]) 值 (@USERNAME)”。 但是如果我不选择从上面的文本框中插入数据,同样的工作绝对没问题。
如果我在 INSERT 语句中使用上面的代码,我会遇到错误。
“无法将值 NULL 插入到列 'USERNAME'、表 'D:\LOGINCONTROL\LONGINCONTROLTEM\LONGINCONTROLTEM\APP_DATA\ASPNET-LONGINCONTROLTEM-20150905150101.MDF.dbo.Table12';列不允许空值。插入失败。 声明已终止。”
下面的语句可以正常工作,但上面的不是,因为文本“SOME VALUE”被正确插入到数据库中,一旦我点击按钮,这证明这里没有连接问题。
例如:InsertCommand="INSERT INTO [Table12] ([USERNAME]) VALUES ('SOME DATA')"。
以下是我正在使用的完整代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="INPUTTODATABASE.aspx.cs" Inherits="LongincontrolTem.INPUTTODATABASE" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="testtest" runat="server">
User Name: <asp:TextBox ID="USERNAME" value="" runat="server" ></asp:TextBox>
<asp:Button ID="SaveData" runat="server" Text="InsertData" OnClick="SaveData_Click" />
<asp:SqlDataSource ID="InsertInformation" runat="server" DataSourceMode="DataSet"
ConnectionString="Data Source=DECTO-PC;AttachDbFilename=|DataDirectory|\aspnet-LongincontrolTem-20150905150101.mdf;Integrated Security=True"
InsertCommand="INSERT INTO [Table12] ([USERNAME]) VALUES (@USERNAME)"
ProviderName="System.Data.SqlClient" >
<InsertParameters>
<asp:Parameter Name="USERNAME" Type="Char" />
</InsertParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
// **code behind page**
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LongincontrolTem
{
public partial class INPUTTODATABASE : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SaveData_Click(object sender, EventArgs e)
{
SqlDataSource DataSourced = (SqlDataSource)FindControl("InsertInformation");
DataSourced.Insert();
}
}
}
【问题讨论】:
-
我在互联网上尝试了所有方法,但没有找到上述任何答案。我是一名新程序员,我觉得这是一个愚蠢的问题,但任何帮助都将不胜感激。
-
看起来您从未设置过参数的值。因此,它默认为 NULL。我讨厌只给你一个链接,但是你看过这个页面中的例子吗? msdn.microsoft.com/en-us/library/fkzs2t3h.aspx。它展示了(以及许多其他内容)如何使用 TextBox 控件为参数提供值。
-
感谢您的反馈,安。你认为这是唯一的问题吗?因为我尝试更改参数的值和字段,但不幸的是我的技巧都没有奏效......
标签: asp.net sql-server database