使用SqlDataAdapter填充DataSet

使用SqlDataAdapter填充DataSet
string sql = "select * from Person.AddressType";//定义SQL查询语句
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter
DataSet ds=new DataSet();
adapter.Fill(ds);//填充一个DataSet
使用SqlDataAdapter将DataSet更改写入数据库
string sql = "select * from Person.AddressType";//定义SQL语句
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds=new DataSet();
adapter.Fill(ds);//填充数据
ds.Tables[0].Rows[0]["ModifiedDate"]=DateTime.Now;//修改DataSet数据
//以下定义更新数据库的方法
SqlCommand updateCmd=new SqlCommand("update Person.AddressType set ModifiedDate= @mdate where AddressTypeID=@id",conn);//定义更新语句
updateCmd.Parameters.Add("@mdate",SqlDbType.DateTime,8,"ModifiedDate");//更新参数
updateCmd.Parameters.Add("@id",SqlDbType.Int,4,"AddressTypeID");//更新参数
adapter.UpdateCommand = updateCmd;//将更新语句的SqlCommand对象应用到SqlDataAdapter
adapter.Update(ds);//执行更新操作
//===============================================
获得多个DataTable对象
string sql = "select * from Person.AddressType;select * from Person.ContactType";
//一个SQL语句中有多个查询
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds=new DataSet();
adapter.Fill(ds);//填充数据
Console.WriteLine(ds.Tables.Count); //返回DataTable的个数,结果为2
动态添加DataTable
DataSet ds = new DataSet();
string sql = "select * from Person.AddressType;";//定义SQL语句
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明一个SqlDataAdapter对象
DataTable  dt1=new DataTable();
adapter.Fill(dt1);//填充数据
dt1.TableName="AddressType";//定义DataTable的名字
ds.Tables.Add(dt1);//向DataSet中添加一个DataTable
Console.WriteLine(ds.Tables.Count);//输出:1
sql = "select * from Person.ContactType";//定义另一个SQL查询
cmd = new SqlCommand(sql, conn);
adapter = new SqlDataAdapter(cmd);
DataTable dt2 = new DataTable();
adapter.Fill(dt2);//填充数据
dt1.TableName = "ContactType";
ds.Tables.Add(dt2);//再添加一个DataTable
Console.WriteLine(ds.Tables.Count);//输出:2
Console.WriteLine(ds.Tables["ContactType"].TableName);//通过TableName检索DataTable

////////////////////////////////////////////////////////////////

获得所有的DataRow
string sql = "select * from Person.AddressType;";//定义SQL查询语句
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds = new DataSet();//定义一个DataSet
adapter.Fill(ds);//填充数据
foreach (DataRow dr in ds.Tables[0].Rows)//循环从DataSet的第一个DataTable中读取每一行
{
    Console.WriteLine(dr["Name"]);//输出Name列的内容
}

///////////////////////////////////////////////////////

通过DataColumn获得列名和数据类型
string sql = "select * from Person.AddressType;";//定义SQL查询语句
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds = new DataSet();//定义DataSet
adapter.Fill(ds);//填充数据
foreach (DataColumn dc in ds.Tables[0].Columns)//循环DataSet中第一个DataTable的每一列
{
    Console.WriteLine(dc.ColumnName + " " + dc.DataType);//输出列名和数据类型
}

//////////////////////////

使用DataView排序
string sql = "select * from Person.AddressType;";//定义SQL查询语句
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds = new DataSet();//定义DataSet
adapter.Fill(ds);//填充数据
DataView dv = new DataView(ds.Tables[0]);//使用DataSet中第一个DataTable生成DataView
dv.Sort = "Name";//根据Name列进行排序
for (int i = 0; i < dv.Count; i++)//循环读取DataView中的每一行
{
    Console.WriteLine(dv[i].Row["AddressTypeID"]+" "+dv[i].Row["Name"]);//输出一行中的内容
}
使用DataView分页
string sql = "select * from Person.AddressType;";//定义SQL查询语句
SqlCommand cmd = new SqlCommand(sql, conn);//申明SqlCommand对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);//申明SqlDataAdapter对象
DataSet ds = new DataSet();//定义一个DataSet
adapter.Fill(ds);//填充数据
DataView dv = new DataView(ds.Tables[0]); //使用DataSet中第一个DataTable生成DataView
dv.RowFilter = "AddressTypeID<5 and AddressTypeID>2";//设置过滤条件
for (int i = 0; i < dv.Count; i++)//循环输出DataView中的每一行
{
    Console.WriteLine(dv[i].Row["AddressTypeID"]+" "+dv[i].Row["Name"]);//输出一行中的内容
}
posted @ 2011-08-31 23:23  canlay  阅读(1008)  评论(0编辑  收藏  举报