酒店管理系统无法向数据库插入新的记录,提示列“入住日期”不允许为nulls,急求!!

代码:

Private Sub BtSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtSave.Click
Try
If TxtRoomNumber.Text = "" Then '判断是否选择房间
MsgBox("请选择房间!")
Exit Sub
End If
Me.BindingContext(Ds1, "客人信息表").EndCurrentEdit() '将数据返回数据集
SqlDataAdapter2.Update(Ds1, "客人信息表") '更新数据,返回数据源
Ds1.Tables("客人信息表").Clear()
'以下代码把选择了的房间的"状态"字段更新为"营业中"
Dim comstr As String = "update 房间表 set 状态 = '营业中' where 房号 = '" & Ds1.房间表.Rows(DataGrid1.CurrentRowIndex).Item(0) & "'"
Dim sqlcom As New SqlCommand(comstr, SqlConnection1)
SqlConnection1.Open()
sqlcom.ExecuteNonQuery()
MsgBox("录入成功!")
BtNext.Enabled = True '将"办理下一个"按钮可用
BtSave.Enabled = False '将"保存信息"按钮不可用
Catch ex As Exception
MsgBox(ex.Message)
Finally
SqlConnection1.Close()
End Try
End Sub
Private Sub TxtDate_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TxtDate.MouseDown
TxtDate.Text = Now()
End Sub

第1个回答  2013-06-28
看看你的数据库里对应表,代表入住日期的字段 “可为空”勾上了没有,估计是你数据库里设置成不能为空了追问

不行啊,“可为空”勾上也不行,还是提醒

第2个回答  2013-06-28
你这里的时间根本就没传进来啊,更新的时候当然会出错了。而且你最好把数据库的设计改成允许为null追问

那个时间应该怎么传进来啊?

追答

你不是有

嘛     取到这个控件的值  在update里的 set 状态 = '营业中' 加上 入住时间=‘输入的时间’  就行了呀

本回答被提问者采纳