我在try catch块中使用下面的代码,但它提供了异常" ' table'参数不能为null。参数名称:表格"我的表名是种姓,那个表的两列是srno和castename。但是它说我的表没有数据.Memory表是一个数据表。
Dim Dset As New DataSet()
Dset = New DataSet()
Dset.Tables.Add(MemoryTable)
DataGridView1.DataSource = Dset.Tables("caste")
我尝试使用数据源连接数据库,但是它给出了Service Pack 1错误 '一种是在TextBox控件上使用数据绑定并分配相同的DataSource。但是它会给出错误
答案 0 :(得分:1)
您没有显示MemoryTable
的定义,但您确实说它是数据表。如果它是System.Data.DataTable
类型的对象,那么它将具有名为TableName
的属性。
当您使用字符串索引值访问DataTable
中的DataSet
时,您传递的值是表的TableName
属性。因此Dset.Tables("caste")
正在寻找DataTable
属性设置为“种姓”的TableName
。如果找不到,则返回Null
。这看起来像是在发生什么。
因此将MemoryTable.TableName
设置为“caste”,错误可能会消失。
我认为MemoryTable
实际上有行?如果没有,这可能是您收到关于您的表没有数据的消息的原因。
所以你的代码应该是这样的:
Dim Dset As New DataSet() ' You don't have to do a separate assignment to Dset
' if you use New in the declaration, so we can omit that line.'
MemoryTable.TableName = "caste"
Dset.Tables.Add(MemoryTable)
DataGridView1.DataSource = Dset.Tables("caste")
实际上,您可以使用MemoryTable
作为数据源,而无需将其添加到DataSet
,除非您出于其他原因需要。
DataGridView1.DataSource = MemoryTable
我希望这会有所帮助。