这些 SqlDataAdapter.Fill 和 DataSet.Tables 中的这个参数是啥
Posted
技术标签:
【中文标题】这些 SqlDataAdapter.Fill 和 DataSet.Tables 中的这个参数是啥【英文标题】:what is this parameter in these SqlDataAdapter.Fill and DataSet.Tables这些 SqlDataAdapter.Fill 和 DataSet.Tables 中的这个参数是什么 【发布时间】:2014-09-30 16:31:54 【问题描述】:我有这部分代码:
Dim SqlCommand_customer As New SqlCommand("selectcustomer", conn.con)
SqlCommand_customer.CommandType = CommandType.StoredProcedure
Dim da_customer As New SqlDataAdapter
Dim SqlDataAdapter_customer As New SqlDataAdapter(SqlCommand_customer)
Dim ds_customer = New DataSet()
SqlDataAdapter_customer.Fill(ds_customer, "customer")
DataGridView_customer.DataSource = ds_customer.Tables("customer")
所以我想知道最后两行中"customer"
代表什么
整个文件中没有任何名为 customer
的内容
而MSDN 声明Fill
中的第二个参数必须是iDataReader
类型:
数据读取器 类型:System.Data.IDataReader IDataReader 的一个实例。
【问题讨论】:
【参考方案1】:SqlDataAdapter 类派生自DbDataAdapter,它具有Fill 的方法重载,第二个参数是字符串。
此字符串是将分配给为存储您的记录而创建的表的名称,或者,如果您在数据集中已有表,它是一个预先存在的表的名称,该表将使用返回的记录加载/刷新命令。
当然是
中的语法DataGridView_customer.DataSource = ds_customer.Tables("customer")
是通过名称引用此表的方式(与ds_customer.Tables(0)
相同)
【讨论】:
【参考方案2】:填充命令的第二个参数是表的名称。
您正在查看错误的参考。您希望 Fill 命令关闭 SQLDataAdapter。
【讨论】:
以上是关于这些 SqlDataAdapter.Fill 和 DataSet.Tables 中的这个参数是啥的主要内容,如果未能解决你的问题,请参考以下文章
SqlDataAdapter#Fill:`SelectCommand.connection` 属性尚未初始化
SqlDataAdapter.Fill(DataGridView.DataSource) 复制所有行