重新设计网页问题 - 我的SQL数据库中有一个名为Approved的字段。此字段对于已批准为true,对于未批准为false。现在,用户希望跟踪被拒绝。因此,它被批准 - 真实,未被批准 - 是假的,或者没有决定 - 无效。
我发现SQL数据库位字段也可以为null。因此,它可以保持值true,false或null。在SQL中,我测试了它,字段可以为null。
我的问题 - 在我的网页上,我在此表中添加了一条记录(甚至没有提到该字段),它会自动进入该字段,因为它是假的。我试图将null添加到该字段,但它仍然作为false进入sql。有没有办法用一个字段来完成这个或者我必须创建一个新字段(请说那是一种方法来做到这一点)?这是我尝试将字段添加为null的代码:
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
谢谢!
答案 0 :(得分:1)
要从.net将数据库值设置为NULL,您需要使用dbnull.value:
所以改变这个:
cmd.Parameters.AddWithValue("@approved", vbNull)
对此:
cmd.Parameters.AddWithValue("@approved", DbNull.Value)