DataSet
DataSet类包含很多属性与方法;其中很多与其组成部分的属性和方法相似,例如GetChanges()。还有一些重要属性,如Tables(以DataTableCollection类的形式包含DataSet中的表集合)、Relations
使用DataSet.GetXml()方法,可以将数据集转换为XML文档;还可以使用DataSet.GetXmlSchema()方法只提取数据集中的架构作为XML文档。还可以使用序列化技术在DataSet与XML文档之间进行转换,因为DataSet类实现了IxmlSerializable接口。这种转换提供了一种应该程序层之间和通过Internet交换数据的很好方法。特别地,有了数据集的DataSet表示形式后,就可以在Web之间进行交换DataSet对象。
void data()
{
string connstring = "";
using (SqlConnection conn = new SqlConnection(connstring))
{
//del.upd.insert....
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"del.upd.insert...";
cmd.Parameters.Add(new SqlParameter("@aaa",SqlDbType.Int,5));
cmd.ExecuteNonQuery();
//select
conn.Open();
SqlCommand cmd1 = conn.CreateCommand();
cmd1.CommandText = @"sel....";
cmd1.Parameters.Add(new SqlParameter("@bbb", bbb));
SqlDataReader dr = cmd.ExecuteReader();
//SqlDataReader dr = cmd.ExecuteScalar();//返¤¦Ì回?第̨²一°?行D第̨²一°?列¢D的Ì?数ºy据Y
while (dr.Read())
{
//......
}
//DataSet 和¨ª SqlDataAdapter
string sqlstr = @".....";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
da.Fill(ds, "table");
ds.Tables[].Columns;//表À¨ª的Ì?列¢D
ds.Tables[].Rows;
}
//手º?动¡¥生¦¨²成¨¦一°?个?DataTable
DataTable table = new DataTable("table");
table.Columns.Add(new DataColumn("id",typeof(int)));
table.Columns.Add(new DataColumn("name",typeof(string)));
....
ds.Tables.Add(table);
string sqlstr = @".....";
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
ManufactureProductDataTable(ds);//manu..方¤?法¤¡§新?一°?个?DataTable依°¨¤次ä?添¬¨ª加¨®每?一°?列¢D,ê?最Á?后¨®把ã?这a个?表À¨ª追Á¡¤加¨®到Ì?DataSet中D表À¨ª的Ì?清?单Ì£¤上¦?
da.Fill(ds, "table");
foreach(DataRow dr in ds.Tables["table"].Rows)
{
DataRow[] children = dr.GetChildRows("rooms");
}
}
}