网页 - 添加数据到 SQL table - 是、否或空

Webpage - Adding data to SQL table - Yes, no, or null

重新设计网页问题 - 我的 SQL 数据库中有一个名为 Approved 的字段。此字段为 true 表示已批准,或为 false 表示未批准。现在,用户想跟踪被拒绝了。因此,已批准 - true,未批准 - false,或未决定 -null。

我发现SQL数据库位域也可以为空。因此,它可以保持值 true、false 或 null。在SQL,我测试了一下,字段可以为null。

我的问题 - 在我的网页上,我向此 table 添加了一条记录(甚至没有提及该字段)并且它自动输入该字段,因为它是错误的。我试图将 null 添加到该字段,但它仍然进入 sql 为 false。有没有办法用位字段来做到这一点,或者我必须创建一个新字段(请说有办法做到这一点)?这是我尝试将字段添加为空的代码:

Using connection As New SqlConnection("Data Source=WillSQL\ict2;Initial Catalog=TimeSQL_testing;Integrated Security=SSPI ")

                commandText = "Insert into tblWorkHours(Employee, EmployeeName, DateRequested, WorkCode, BeginDateOff, EndDateOff, AllDay_YesNo, approved, sys_usr, stampaddtime) values (@Employee,@EmployeeName,@DateRequested,@WorkCode,@BeginDateOff,@EndDateOff,@AllDay_YesNo, @approved, @sys_user, @stampaddtime)"

                Dim cmd As New SqlCommand(commandText, connection)

                connection.Open()

                cmd.Parameters.AddWithValue("@Employee", stempid)
                cmd.Parameters.AddWithValue("@EmployeeName", stempname)
                cmd.Parameters.AddWithValue("@DateRequested", stdtreq)
                cmd.Parameters.AddWithValue("@WorkCode", streason)
                cmd.Parameters.AddWithValue("@BeginDateOff", stdtbeg)
                cmd.Parameters.AddWithValue("@EndDateOff", stdtend)
                cmd.Parameters.AddWithValue("@AllDay_YesNo", stallday)
                cmd.Parameters.AddWithValue("@approved", vbNull)
                cmd.Parameters.AddWithValue("@sys_user", vname)
                cmd.Parameters.AddWithValue("@stampaddtime", dt)

                cmd.ExecuteNonQuery()

                connection.Close()
            End Using

谢谢!

要从 .net 将数据库值设置为 NULL,您需要使用 dbnull.value:

所以改变这个:

cmd.Parameters.AddWithValue("@approved", vbNull)

为此:

cmd.Parameters.AddWithValue("@approved", DbNull.Value)