DataTable,DataView和DataGrid中一些容易混淆的(4)

this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@City", System.Data.SqlDbType.NVarChar, 15, "City"));
  this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Region", System.Data.SqlDbType.NVarChar, 15, "Region"));
  this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PostalCode", System.Data.SqlDbType.NVarChar, 10, "PostalCode"));
  this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Country", System.Data.SqlDbType.NVarChar, 15, "Country"));
  this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Phone", System.Data.SqlDbType.NVarChar, 24, "Phone"));
  this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Fax", System.Data.SqlDbType.NVarChar, 24, "Fax"));
  
  DataAdapter的SelectCommand是用来DataAdapter.Fill()方法来填充DataTable的,SelectCommand选择的数据表行集将被填充到DataTable中,然后DataGrid将它显示出来。
  
  DataGrid在经过编辑修改后,其对应的DataTable中的行就可能出现文章上面所述的那五种状态,可能是新加的(Added),可能是修改了的(Modified),可能是删除的(Deleted),DataAdapter.UpDate()方法将通过调用InsertCommand命令将状态为Added的行插入到数据库,UpdateCommand将状态为Modified的行在数据库中做修改,DeleteCommand将状态为 Deleted的行在数据库真正的删除。
  
  如果不是通过vs.net的可视化数据设计器新建DataAdapter,没有自动生成SelectCommand、InsertCommand、 UpdateCommand、DeleteCommand这四个命令,那么就可能需要自己写InsertCommand、UpdateCommand、 DeleteCommand命令,有一种情况就是当SelectCommand至少返回一个主键列或唯一的列时,可以通过 SqlCommandBuilder来自动根据SelectCommand命令来自动生成另外三个更新命令,例如:
  
  SqlConnection myConn = new SqlConnection(myConnection);
  SqlDataAdapter myDataAdapter = new SqlDataAdapter();
  myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn); //建立DataAdapter的SelectCommand命令
  SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter);//建立此DataAdapter的CommandBuilder,
   //这样系统就会给此DataAdapter自动生成InsertCommand、UpdateCommand、DeleteCommand三个命令。
  
  否则,要用DataAdapter.UpDate()方法更新数据库就要自己写InsertCommand、UpdateCommand、DeleteCommand这三个命令,可以参考上面给出的vs.net自动生成的InsertCommand命令的写法。
  
  ◆ 数据绑定的同步
  
  WinForm中很多控件都可以与数据源绑定,绑定又分两种情况:
  
  简单数据绑定
  简单数据绑定指将一个控件绑定到单个数据元素(如数据集表的列中的值)的能力。这是用于控件,如 TextBox 控件或 Label 控件(即通常只显示单个值的控件)的典型绑定类型。事实上,控件上的任何属性都可以绑定到数据库中的字段。
  
  复杂数据绑定
  复杂数据绑定指将一个控件绑定到多个数据元素的能力,通常绑定到数据库中的多条记录,或者绑定到多个任何其他类型的可绑定数据元素,一般是绑定到一个DataView。支持复杂绑定的控件的示例有DataGrid、ListBox 和 ErrorProvider 控件。
  
  一般DataGrid控件都是跟一个DataView绑定,DataGrid的数据绑定属于复杂绑定,因为它绑定到有多条记录的表,DataGrid有两个属性同数据绑定有关:
  
  DataGrid.DataSource 属性:获取或设置DataGrid所显示数据的数据源。一般是跟DataTable 、DataView 、DataSet 绑定,如果DataSource设定为DataSet,则引用包含的表不止一个,则必须向 DataMember 属性设置一个字符串,该字符串指定要绑定到的表。
  
  DataGrid.DataMember 属性:获取或设置 DataSource中的特定列表,就是上述DataSource设定为DataSet时,要设定此属性来指定要绑定到的表。
来源:http://www.002pc.com/master/College/Programming/aspnet/13247.html

你可能感兴趣的:(DataTable,DataView和DataGrid中一些容易混淆的(4))