Vb.net VB窗体运行时错误,向数据表中添加列
您好,我目前正在学校做一个订购系统项目,我对VB表单相当陌生 我有一个名为tblMenuInfo的访问表,其列为Vb.net VB窗体运行时错误,向数据表中添加列,vb.net,ms-access,runtime-error,Vb.net,Ms Access,Runtime Error,您好,我目前正在学校做一个订购系统项目,我对VB表单相当陌生 我有一个名为tblMenuInfo的访问表,其列为ItemNo,DishName,DishPrice 我正在尝试向数据表中添加一列,名为SubTotal和Quantity。但是我得到了下面的错误消息 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim it
ItemNo
,DishName
,DishPrice
我正在尝试向数据表中添加一列,名为SubTotal
和Quantity
。但是我得到了下面的错误消息
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim itemno As String
Dim quantity, count As Integer
count = count + 1
itemno = TextBox5.Text
Quantity = TextBox6.Text
sql = ("SELECT ItemNo ,DishName, DishPrice FROM tblMenuInfo WHERE ItemNo = """ & itemno & """")
da = New OleDb.OleDbDataAdapter(sql, Conn)
da.Fill(dsorder, "OrderInfo")
If count = 1 Then
dsorder.Tables("OrderInfo").Columns.Add("Quantity")
dsorder.Tables("OrderInfo").Columns.Add("Sub total")
End If
DataGridView1.DataSource = dsorder.Tables("OrderInfo")
DataGridView1.AutoResizeColumns()
End Sub
(很抱歉,我无法提供打印屏幕,我使用的是学校电脑)
我的程序只在第二次单击时崩溃
提前谢谢 第一次单击后,datatable包含以下列
{"A column named 'Quantity' already belongs to this DataTable."}
如果第二次单击,datatable仍然包含这些列
ItemNo|Dishname|Dishprice|Total|Quantity
当代码达到以下点时:
ItemNo|Dishname|Dishprice|Total|Quantity
编译器说:“嘿,我不能添加该列!该列已存在于数据表中”
您实际需要做的是:检查列是否已经存在,或者清除该数据集的datatable
解决方案1:单击后清除数据表
dsorder.Tables("OrderInfo").Columns.Add("Quantity")
解决方案1的注意事项:ds包含的所有数据都将丢失
解决方案2:检查该列是否存在
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim itemno As String
Dim quantity, count As Integer
dsorder.Tables.Clear()
dsorder在哪里定义?单击该按钮时,会将该列添加到表中。第二次单击时,该列从第一次单击时就已存在。您可能应该在单击按钮的内部本地定义dsorder。或者至少,清除按钮click开头的列。dsorder是一个公共数据集,但我现在将其设置为本地数据集。谢谢,干杯,伙计!玩得高兴
'Check if datatable exists
If (dsorder.Tables("OrderInfo") IsNot Nothing) Then
'Check if column exists
If Not dsorder.Tables("OrderInfo").Columns.Contains("Quantity") Then
dsorder.Tables("OrderInfo").Columns.Add("Quantity")
dsorder.Tables("OrderInfo").Columns.Add("Sub total")
End If
End If