SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释
一、SqlDataAdapter的方法之一Fill (DataSet dataset, String datatable)解释:
根据datatable名填充Dataset。
myda.Fill(ds, strtable);
strtable不是一个变量,是一张虚表
你通过SQL语句获得某张数据库的表之后把这些数据填充到dataset中,dataset也是张虚表,像视图一样,现在的strtable就表示你需要的数据的集合,虚表~~ 所以strtable必须打""
myda.Fill(ds, "strtable");
可以不需要strtable,直接myda.Fill(ds); 即用Fill(DataSet dataset)方法,返回值是成功添加或更新的行的数量。
二、关于DataSet的Tables参数问题
da.Fill(ds) --这里没有指定Table名
Gridview.DataSource = ds.Tables(0) --所以这里用 Tables(0)
C# 如果
da.Fill(ds ,"UserTableName")
Gridview.DataSource = ds.Tables["UserTableName"] --这里就可以用名称了
因为一个DataSet中可以放下好多个表,一般读取数据库时数据默认填入DataSet的第一个表中,其Index为0,所以这里用Tables(0),特指DataSet中的第一个DataTable。
索引值,从0开始
如:如果DataSet里有多个表集,可以通过索引访问 ;
ST_dd.Tables[0]:取ST_dd里的第一张表
ST_dd.Tables[0].Rows[0] : 取ST_dd里的第一张表里的第一行
今天遇到一个问题就是从数据库中取出的值放在dataset中,那么如何判断这个dataset中有没有表呢,有的话,这个表中有没有数据 ?
应该是下面这样判断:
if(dataset.Tables.Count==0)//表示dataset中没有表
if(dataset.Tables.Count==1&&dataset.Tables[0].Rows.Count==0)
//表示dataset中 有一个表,但这个表中没有数据
DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。
DataTable表示内存中数据的一个表。