DataSet小问题请教一下.
DataSet dataset = new DataSet();
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.
这是摘自MSDN里的.我想问下adapter.Fill(dataset, "aaa"); 既然有了dataset.Tables.Add("aaa");为什么还要adapter.Fill(dataset, "aaa"); 它们的区别是什么.
[解决办法]
dataset 里有两个表'AAA','aaa'
Fill(dataset, "aaa"); 指定向'aaa'表填充数据
[解决办法]
fill是将数据填充到dataset
[解决办法]
如果ds中已经有该表,fill就是补充数据,给你个demo
DataSet ds = new DataSet(); DataTable dt = new DataTable("aaa"); ds.Tables.Add("aaa"); //自己先创建一个 aaa 表加入ds ds.Tables["aaa"].Columns.Add(new DataColumn("OrderID", typeof(int))); ds.Tables["aaa"].Columns.Add(new DataColumn("CustomerID", typeof(string))); DataRow dr = ds.Tables["aaa"].NewRow(); dr["OrderID"] = 0; dr["CustomerID"] = "xyz"; ds.Tables["aaa"].Rows.Add(dr); string conStr = "server=.;database=northwind;integrated security= sspi"; SqlConnection con = new SqlConnection(conStr); SqlDataAdapter adapter = new SqlDataAdapter("select top 5 OrderId,CustomerID from Orders", con); adapter.Fill(ds, "aaa"); //再通过数据库查询填充 aaa 表 this.gvTest.DataSource = ds.Tables["aaa"]; this.gvTest.DataBind(); //可以观察到gridview中包括自建aaa表中的数据,以及后来查询所得数据
[解决办法]
dataset.Tables.Add("aaa");
dataset.Tables.Add("AAA");
是在DataSet中初始化两个datatable,
adapter.Fill(dataset, "aaa") 这句是把adapter的command命令的Sql语句的结果填充到DataSet中的aaa这个datatable中
[解决办法]
那么为什么dataset.Tables.Add("aaa"); 之后不能BIND gridview,照理说DATASET里面有该表了啊.
这还是个没有行列的空表,当然会出错