当我尝试从文本框中插入值时,无法将NULL值插入列,但直接插入时效果很好

猫王

当我尝试从ID =“ USERNAME”的文本框中插入数据时,无法将数据插入数据库中,这是通过将值选择为@USERNAME来实现的,例如:InsertCommand =“ INSERT INTO [Table12]([USERNAME] )VALUES(@USERNAME)”。但是,如果我不选择从上述文本框中插入数据,则同样可以正常工作。

如果要在INSERT语句中使用以上代码,我将遇到错误。

“无法将值NULL插入表'D:\ LOGINCONTROL \ LONGINCONTROLTEM \ LONGINCONTROLTEM \ APP_DATA \ ASPNET-LONGINCONTROLTEM-20150905150101.MDF.dbo.Table12'的列'USERNAME'中;该列不允许为空。插入失败。该语句具有已终止。”

下面的语句工作正常,但上面的语句却无效,因为一旦单击按钮,文本“ 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();
        }
    }
}
麦克麦林(Michael McMullin)

似乎需要进行一些小的更改才能使此工作正常进行:

首先,您InsertParameters应该引用您的TextBox,因为这是您需要提供的值。另外,您可能需要一种String而不是Char尝试用以下方式替换该块:

<InsertParameters>
    <asp:ControlParameter Name="USERNAME" Type="String" ControlID="USERNAME" />
</InsertParameters>

接下来,您的SaveData_Click事件可以简化:

protected void SaveData_Click(object sender, EventArgs e)
{
    InsertInformation.Insert();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Golang Slice直接插入Postgres数组

Aurelia:从直接插入html的选项中绑定初始选择的值

将shell命令的输出直接插入到tmux窗格中

当参数为NULL时将DEFAULT值插入列中

值不为空时无法将NULL插入列

是否可以使用Java变量将HTML直接插入速度模板中?

JSP的文本框值无法插入数据库

SQL:无法将值NULL插入列“ ExampleID”

如何获取WPF文本框以将值插入变量并在textarea中显示?

尽管值不为NULL,但“无法将值NULL插入列”

SQL插入错误:无法将值NULL插入列'Id'

如何使用pyhton将值直接插入SQL基本表中?

在React中单击按钮时,如何在输入字段中的任何位置直接插入文本?

当我尝试将数组的值添加到文本框中时,数据列表未进入文本框

Oracle用力将值插入列中

将表值插入文本框

SqlBulkCopy无法将值NULL插入列

无法从linux xshell直接插入到mysql数据库中

“无法将值NULL插入列...” SqlException,同时将哈希值插入到列中

Web API错误:“无法将值NULL插入列'Id'

如何将命令输出直接插入到模式之前的文件中?

无法将值NULL插入列'DeletedDatabaseRecord',...; 列不允许为空。插入失败

将值直接插入C#中的db语法中

当我尝试将值插入表时,错误 msg SQL 命令未正确结束

将光标直接插入到 Android 中的表格中

如何修复:无法将值 NULL 插入列,插入失败

将文本框值插入公式

将值从不同的文本框vba插入列

EFCore 无法将值 NULL 插入列