MSSQL查询错误:“无法将值NULL插入列<x>。”</x>

时间:2010-12-20 10:41:57

标签: asp.net sql-server vb.net

alt text

在///此编码中发生以下错误“

无法将值NULL插入列'boarding',表'C:\ USERS \ VBI SERVER \ DOCUMENTS \ VISUAL STUDIO 2008 \ WEBSITES \ VOLVO \ APP_DATA \ ASPNETDB.MDF.dbo.boardingpt' ;列不允许空值。 INSERT失败。声明已经终止。

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As New SqlConnection
        Dim cmd As New SqlCommand
        con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True"
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "INSERT INTO boardingpt (service, travelid, bdpt_name, time) VALUES('" & Trim(TextBox3.Text.ToString) & "', '" & Trim(TextBox4.Text.ToString) & "', '" & Trim(TextBox1.Text.ToString) & "','" & Trim(TextBox2.Text.ToString) & "')"
        cmd.ExecuteNonQuery()
        con.Close()

    End Sub

4 个答案:

答案 0 :(得分:1)

您没有为boarding字段提供值,该字段为NOT NULL字段(未选中Allow Nulls)。

成为NOT NULL字段意味着拥有为其提供值。

如果该字段应该是表格中行的ID,则应将其设为IDENTITY字段。

有关如何使用Visual Studio数据库设计器更改标识属性,请参阅MSDN上的this

答案 1 :(得分:1)

您需要将列更改为IDENTITY

或在列定义选择

下的SSMS下

Table Designer -> Identity Specification -> (Is Identity)true

答案 2 :(得分:0)

你没有将登机栏设置为Identity,所以试图在那里放一个空(因为你没有在插入查询中提供它的值)

答案 3 :(得分:0)

您正在尝试为设置为NOT NULL的列插入NULL值。

解决方案

  • 登机列设为ALLOW NULL并删除主键(因为主键永远不能为空)

  • 登机列的表设计模式中将IDENTITY设置为YES

希望这有帮助

由于 的Vivek