Vb.net 向具有自动生成字段的数据表中添加行
首先,我已经搜索了互联网以找到解决方案,但似乎没有什么是完全正确的 我有一个DataGrid,它显示来自数据库的信息。我正在尝试向datagrid和数据库添加记录。下面的代码是迄今为止我对“添加”按钮的代码Vb.net 向具有自动生成字段的数据表中添加行,vb.net,datagridview,datatable,Vb.net,Datagridview,Datatable,首先,我已经搜索了互联网以找到解决方案,但似乎没有什么是完全正确的 我有一个DataGrid,它显示来自数据库的信息。我正在尝试向datagrid和数据库添加记录。下面的代码是迄今为止我对“添加”按钮的代码 Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database") Dim dbConnectio
Dim TaxConnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ConfigurationManager.AppSettings("Database")
Dim dbConnection As OleDbConnection = New OleDbConnection(TaxConnStr)
Dim dt As New DataTable
Dim ds As New DataSet
Try
dt.Rows.Add(New String() {
boxAssignTo.Text, _
boxState.Text, _
boxCounty.Text, _
boxAmount.Text, _
boxType.Text, _
boxRank.Text})
Catch ex As Exception
Finally
dbConnection.Close()
End Try
现在我有一个错误“输入数组比这个表中的列数长。”在这个过程中显示。我猜测这是因为在数据库的表中,我有一个自动生成的ID字段,我没有添加到其中。但我不知道如何把这个加进去
不知道这是否重要,但当我显示数据网格时
DataGridView1.Columns.Remove("ID")
所以我看不到ID字段(在这个winForm上有点毫无意义)
请温和一点,我对数据库和VB非常陌生。出现此错误的原因是您没有添加任何列:
Try
dt.Columns.Add("a")
dt.Columns.Add("b")
dt.Columns.Add("c")
dt.Columns.Add("d")
dt.Columns.Add("e")
dt.Columns.Add("f")
dt.Rows.Add(New String() {"1","2","3","4","5","6"})
Catch ex As Exception
Finally
End Try
现在这是有道理的。我假设这不会自动更新我的dataGrid,所以我应该在“finally”之后输入函数以获取dataGrid信息。对吗?如果数据网格没有预定义的列(即在表单视图中),则可以使用此选项。如果已经创建了网格,而您只是在向其添加值,则需要以另一种方式进行。这是ASP.net还是windows窗体?windows窗体。datagrid正在从数据库表中读取列信息。我只是在尝试更新datagrid和DB表。一旦创建了一个数据表并用数据行填充它,就可以将它绑定到数据网格,如下所示:Me.DataGridView1.DataSource=dtOk到目前为止,所有这些都起到了作用。dataGrid正在使用我尝试添加的新标准进行更新。但是,它并没有更新到数据库中……而且,每当我点击“添加”(按钮,所有代码都是针对该按钮的)时,datagrid并没有更新……它只是被新信息覆盖。我怎样才能只添加到datagrid而不完全重新做呢