SqlDataAdapter、DataSet和DataGrid
既然我们已经建立了与MSDE " master "数据库的连接,并且创建了一个带有三个记录的表" test42 ",现在是时间来选择数据并且把它们连接到表格中了。 因为这个目的,我想使用三个控件:一个SqlDataAdapter、一个DataSet和一个显然用来显示数据的DataGrid。
首先放置一个SqlDataAdapter控件。 这个控件还有用于SelectCommand、InsertCommand、UpdateCommand和DeleteCommand的子属性。 这些命令中的每一个都是相当于一个我们在前面章节中使用的SqlCommand控件。 这次,我们只需要SelectCommand,你必须指定它的Connection属性,然后CommandText属性中指定一个SELECT语句(注意,我再次在代码中完成这些工作)。
现在,放置一个DataSet控件。 这个DataSet将被SelectCommand的结果填充。 顺便说一句,与Delphi不同,.NET DataSet可以包含多个表。
最后,放置一个DataGrid控件。 我们可以指定DataGrid的DataSource和DataMember属性为连接DataSet和Table,以便浏览数据。配置DataGrid,使它更好看些(我将跳过这个步骤,把精力集中在Data Components)。

下面这段代码初始化SqlDataAdapter控件的SelectCommand属性,并且使用SelectCommand来填充DataSet,最终把它绑定到DataGrid上(在第三个按钮的button_click事件处理程序中):
private void button3_Click(object sender, System.EventArgs e) { try { sqlDataAdapter1.SelectCommand.Connection = sqlConnection1; sqlDataAdapter1.SelectCommand.CommandText = "select * from test42"; sqlDataAdapter1.Fill(dataSet1, "MyTable42");
dataGrid1.DataSource = dataSet1; dataGrid1.DataMember = "MyTable42"; // same name as above } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
注意,在这段代码中填充DataSet(被SqlDataAdapter)时指定的名称与绑定DataSet到DataGrid时指定的DataMember属性值同名。
这将在DataGrid中显示select语句的输出,如下:

正如你所看到的,SqlConnection与数据库通讯,然后SqlCommand和SqlDataAdapter使用Connection来执行命令(并且使用结果选择性地填充.NET DataSet)。