一 ado.net与ado
ado :[面向连接的] 1 ole-db数据源提供程序。 2 所有的数据库使用同一个Connection类。
ado.net :[ 面向无连接] 1 托管的.net数据源提供程序。 2 Connection类针对特定的数据库进行优化。
二 Connection类
SqlDataAdapter MyAdapter= new SqlDataAdapter();
SqlConnection myConnection = new SqlConnection("server=localhost;database=Northwind;integrated security=yes ");
//myConnection.ConnectionTimeout=6000; //设置连接时间,超过这个时间没连上则报超时
string str="select categoryid,categoryname,[description] from Categories"; //sql 查询串
MyAdapter.SelectCommand = new SqlCommand(str, myConnection);
MyAdapter.SelectCommand.CommandType = CommandType.Text;
DataSet ds=new DataSet();
myConnection.Open();
MyAdapter.Fill(ds);
dataGrid1.DataSource=ds.Tables[0];
//dataGrid1.DataSource=ds; //用这句代替上面一句看一下效果^_^
myConnection.Close();
注意:如果连接的是"存储过程" 修改以上红色部分为:
MyAdapter.SelectCommand = new SqlCommand("存储过程名", myConnection);
MyAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
三 添加表之间的关系:
在包含多个 DataTable 对象的 DataSet 中,可以使用 DataRelation 对象来使一个表与另一个表相关,在多个表之间导航,以及从相关表中返回子行或父行。默认情况下,向 DataSet 中添加 DataRelation 会将一个 UniqueConstraint 添加到父表中并将一个 ForeignKeyConstraint 添加到子表中。
以下代码示例使用 DataSet 中的两个 DataTable 对象来创建一个 DataRelation。每个 DataTable 包含一个名为 customerid 的列,它用作两个 DataTable 对象之间的链接。该示例将单个 DataRelation 添加到 DataSet 的 Relations 集合中。该示例中的第一个参数指定所创建的 DataRelation 的名称。第二个参数设置父 DataColumn,第三个参数设置子 DataColumn。
[Visual Basic]
custDS.Relations.Add("CustOrders", _
custDS.Tables("Customers").Columns("customerid"), _
custDS.Tables("Orders").Columns("customerid"))
[C#]
custDS.Relations.Add("CustOrders",
custDS.Tables["Customers"].Columns["customerid"],
custDS.Tables["Orders"].Columns["customerid"]);
四 DataView
DataView类似于Sql中的试图。
.............................
DataTable dt=ds.Tables["duty"]; //ds即为DataSet,dt为ds中的一个Datatable
DataView dv=new DataView(dt);
dv.RowFilter="日期< '2004-11-25' "; //类似与sql 中的where 子句
//如果是变量的话可以是下面红色部分:
// string dstr=System.DateTime.Now.ToString("yyyy/MM/dd");
// dv.RowFilter="日期< ' "+dstr+" ' ";
dv.Sort="日期 desc";//类似于sql 中的order 子句
My_Grid.DataSource=dv; //数据绑定
..............................