![C#程序设计基础-教程、实验、习题[赵敏][电子教案]第九章-3_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/eacf8e36-9965-4887-8c04-69c67d0f7149/eacf8e36-9965-4887-8c04-69c67d0f71491.gif)
![C#程序设计基础-教程、实验、习题[赵敏][电子教案]第九章-3_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/eacf8e36-9965-4887-8c04-69c67d0f7149/eacf8e36-9965-4887-8c04-69c67d0f71492.gif)
![C#程序设计基础-教程、实验、习题[赵敏][电子教案]第九章-3_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/eacf8e36-9965-4887-8c04-69c67d0f7149/eacf8e36-9965-4887-8c04-69c67d0f71493.gif)
![C#程序设计基础-教程、实验、习题[赵敏][电子教案]第九章-3_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/eacf8e36-9965-4887-8c04-69c67d0f7149/eacf8e36-9965-4887-8c04-69c67d0f71494.gif)
![C#程序设计基础-教程、实验、习题[赵敏][电子教案]第九章-3_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/eacf8e36-9965-4887-8c04-69c67d0f7149/eacf8e36-9965-4887-8c04-69c67d0f71495.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、9.6.2 简单数据绑定l 对于简单型的数据绑定,数据绑定的方法比较简单,在得到数据集以后,一般通过把数据集中的某个字段绑定到组件的显示属性上面,如绑定到TextBox组件或Label组件的Text属性。l 【例9-24】 单击窗体中的“Button1”按钮,在textBox1控件中显示Northwind数据库的Products表中Products.ProductName列的数据(简单绑定)。具体实现方法是:l (1) 设置连接Northwind数据库的连接字符串,并保存到connectionstring变量中。l (2) 创建SqlConnection类的实例con,它将用于连接Northw
2、ind数据库。l (3) 设置con实例的ConnectionString属性的赋值为connectionstring变量的值,即设置该连接的连接字符串。l (4) 设置查询Products表中的数据的SQL语句“select * from Products”,并保存到cmdText变量中。l (5) 创建执行SQL语句的数据适配器da,它使用了cmdText和con变量。l (6) 创建DataSet对象ds。l (7) 在try语句中,调用con实例的Open( )方法打开数据库的连接,并调用da实例的Fill( )方法填充ds对象。如果失败,则在catch块中显示失败的信息。l (8)
3、在finally块中,调用con实例的Close( )方法,关闭已经打开的数据库连接。l (9) 绑定textBox:l textBox1.DataBindings.Clear();l textBox1.DataBindings.Add(text, ds, Products.ProductName);l private void button1_Click(object sender, EventArgs e)l l string connectionstring = Data Source=20101117-0700;Initial Catalog=Northwind;Integrated
4、Security=True;l SqlConnection con = new SqlConnection();l con.ConnectionString = connectionstring;l string cmdText = select * from Products ;l SqlDataAdapter da = new SqlDataAdapter(cmdText, con);l DataSet ds =new DataSet();l tryl l con.Open();l da.Fill(ds, Products);l l catch (Exception ex)l Messag
5、eBox.Show(ex.Message); l finally con.Close(); l textBox1.DataBindings.Clear();l textBox1.DataBindings.Add(text, ds, Products.ProductName);l 9.6.3 复杂数据绑定l 复杂型的数据绑定一般是通过设定其某些属性值来实现绑定的。l 复杂数据绑定是把一个基于列表的用户界面控件绑定到一个数据实例列表。或者说允许将多个数据元素绑定到一个控件。复杂数据绑定可以绑定数据源中的多行或多列。支持复杂数据绑定的控件有数据网格控件、列表框、组合框。和简单数据绑定一样,复杂数据绑
6、定通常也是用户界面控件绑定的值发生改变时传达到数据列表,数据列表发生改变时传达到用户界面元素。l 【例9-25】 单击窗体中的“Button2”按钮,在comboBox1控件中显示Northwind数据库的Products表中Products.ProductName列的数据。使用comboBox1的DataSource、DisplayMember、ValueMember 属性。界面如图9.17所示,代码如下:l private void button2_Click(object sender, EventArgs e)l l string connectionstring = Data Sou
7、rce=20101117-0700;Initial Catalog=Northwind;Integrated Security=True;l SqlConnection con = new SqlConnection();l con.ConnectionString = connectionstring;l string cmdText = select * from Products ;l SqlDataAdapter da = new SqlDataAdapter(cmdText, con);l DataSet ds = new DataSet();l tryl l con.Open();
8、l da.Fill(ds, Products);l l catch (Exception ex)l MessageBox.Show(ex.Message); l finally con.Close(); l comboBox1.DataSource = ds;l comboBox1.DisplayMember = Products.ProductName;l comboBox1.ValueMember = Products.ProductName;l 图9.17 例9-25运行界面 l 【例9-26】 数据绑定实例。具体步骤如下。l (1) 创建一个Windows程序,为窗体添加控件,界面如图
9、9.18所示。l 图9.19 资源管理器中显示 新创建的数据集l (2) 在数据菜单下打开“显示数据源”,选中“添加新数据源”(或者直接选择“数据”“添加新数据源”菜单项),根据向导选择本地服务器中的Northwind数据库中的Customers表,创建数据集northwindDS及数据连接northwindCS。l 此时在资源管理器中就可以看到新创建的数据集(如图9.19所示)。l (3) 设计时绑定设计。选中“客户ID”所对应的文本框textBox1,从属性窗口中打开DataBindings属性,单击text右侧下拉列表,选择Customers表中的CustomerID字段,这样就建立了绑
10、定,其他控件的绑定类似。l 在窗体的Load事件中添加填充数据集的代码:l this. customersTableAdapter.Fill (this.NorthwindDS.Customers); 图9.18 例9-25 运行界面图9.19 资源管理器中显示 新创建的数据集l (4) 除了用属性设定绑定外,还可以用代码设定绑定。在Form1_ Load事件过程中,可以把this. customersTableAdapter.Fill(this.NorthwindDS.Customers);替换为this.sqlDataAda pter1.Fill(this.northwindDS);,同时
11、将一些控件绑定到同一数据源的不同字段。l public partial class Form1: Forml l public Form1()l l InitializeComponent();l l private BindingManagerBase mybmb;/添加一个BindingManagerBase成员l private void Form1_Load(object sender, EventArgs e)l /TODO: 这行代码将数据加载到表northwindDS.Customers中l /可以根据需要移动或移除它l this.customersTableAdapter.Fi
12、ll(this.northwindDS.Customers);l textBox1.DataBindings.Add(text, northwindDS, Customers.CustomerID);l textBox2.DataBindings.Add(text, northwindDS, Customers.Contact Name);l textBox3.DataBindings.Add(text,northwindDS, Customers.Company Name);l textBox4.DataBindings.Add(text, northwindDS, Customers.Ad
13、dress);l textBox5.DataBindings.Add(text, northwindDS, Customers.Phone);l comboBox1.DataBindings.Add(text, northwindDS, Customers.Address);l mybmb=groupBox1.BindingContextnorthwindDS, Customers;l l 通常绑定控件的数据导航,一般使用BindingManagerBase类,该类是CurrentManager类的基类,是一个抽象类,无法实例化,可以使用该类的CurrentManager对象来获得Curren
14、tManager对象的引用(基类指针指向派生类的对象),达到跟踪并改变数据源的当前位置的目的。CurrentManager负责对某一数据源绑定的跟踪管理(如同步、记录当前位置),使用BindingManagerBase类来对Windows窗体上绑定到相同数据源的数据绑定控件进行同步,实质上是引用CurrentManager对象来实现的。l 要在程序中获得BindingManagerBase类引用,可以使用BindingContext属性获得,如mybmb= groupBox1.BindingContextnorthwindDS, Customers;设定groupBox1对象内所有绑定到相同数
15、据源的数据绑定控件进行同步。l 获取CurrentManager对象的引用:l mybmb=groupBox1.BindingContextnorthwindDS, Customers;l (5) 使用BindingManagerBase的Position循环访问BindingManagerBase 所维护的基础列表的所有记录。Count是获取BindingManagerBase所管理的绑定的行数,见如下代码:l private void button1_Click(object sender, EventArgs e)/首行l l mybmb.Position = 0;l l private
16、 void button2_Click(object sender, EventArgs e)/前一行l l if (mybmb.Position 0) mybmb.Position -= 1;l l private void button3_Click(object sender, EventArgs e) /后一行l if (mybmb.Position mybmb.Count-1) mybmb.Position += 1; l private void button4_Click(object sender, EventArgs e) /末行l mybmb.Position = mybm
17、b.Count - 1; l9.7 DataGridView控件l创建DataGridView实例:DataGridView dgv = new DataGridView();l或者在工具箱中向窗体中添加DataGridView控件。l 【例9-27】 单击窗体中的“Button1”按钮,在DataGridView控件中显示Northwind数据库的Customers表中的数据,具体实现方法如下:l (1) 设置连接Northwind数据库的连接字符串,并保存为connectionstring变量。l (2) 创建SqlConnection类的实例con,它将用于连接Northwind数据库。
18、l (3) 设置con实例的ConnectionString属性的值为connectionstring变量的值,即设置该连接的连接字符串。l (4) 设置查询Customers表中的数据的SQL语句“select * from Customers”,并保存在cmdText变量中。l (5) 创建执行SQL语句的数据适配器da,它使用了cmdText和con变量。l (6) 创建DataSet对象ds。l (7) 在try语句中,调用con实例的Open( )方法打开数据库的连接,并调用da实例的Fill( )方法填充ds对象。如果失败,则在catch块中显示失败的信息。l (8) 在final
19、ly块中,调用con实例的Close( )方法,关闭已经打开的数据库连接。l (9) 创建DataGridView对象dgv,语句为DataGridView dgv = new DataGridView();。l (10) 设置dgv控件的DataSource属性值为dgv.DataSource = ds.Tables0.DefaultView;。运行界面如图9.20所示,代码如下:l string connectionstring = Data Source=20101117-0700;Initial Catalog=Northwind; Integrated Security=True;l
20、 SqlConnection con = new SqlConnection();l con.ConnectionString = connectionstring;l string cmdText = select * from Customers ;l SqlDataAdapter da = new SqlDataAdapter(cmdText,con);l DataSet ds = new DataSet();l tryl l con.Open();l da.Fill(ds);l l catch (Exception ex)l MessageBox.Show(ex.Message); l
21、 finally con.Close(); l DataGridView dgv = new DataGridView();/创建DataGridView实例l dgv.Width = this.Width;/dgv的宽度与窗体的宽度相同l this.Controls.Add(dgv);/把dgv添加到窗体上l dgv.DataSource = ds.Tables0.DefaultView;l /绑定DataGridView实例的数据,或者把dgv.DataSource=ds.Tables0.DefaultView;替换为:l /dgv.DataSource = ds;l /dgv.DataM
22、ember = Customers;l 同时填充语句要改成da.Fill(ds,Customers)。图9.20 例9-26运行界面l 如果数据库的表中含有图像字段,也可以通过DataGridView来显示。l 【例9-28】 在Employees表中显示出EmployeeID、FirstName、LastName、Photo、ReportsTo列的值,用0代替ReportsTo列中的Null值,数据库中有的行在这个字段中包含了Null值,表示该人没有上级。但是在绑定数据时,需要该列有值,否则会在显示时抛出异常。l 运行界面如图9.21所示,代码如下:图9.21 例9-27运行界面l string connectionstring
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年一级造价师之建设工程技术与计量(水利)自我检测试卷A卷附答案
- 体育教学课件下载
- 你真棒作文教学课件
- 第三章滴定分析13课件
- 2025年安徽商贸职业技术学院单招职业倾向性测试必刷测试卷含答案
- 2025年第二季度网络安全意识培训测试题有答案
- 工业互联网平台IPv6技术升级对工业生产过程透明化与可视化的影响报告
- 口才课自我介绍课件模板
- 小学生矛盾纠纷课件
- 住宅消防管网管理办法
- 宝钢设备大修管理办法
- 缓和医疗与护理课件
- 学堂在线 军事理论 章节测试答案
- 早产儿喂养不耐受的护理
- 肿瘤药药学科普
- 新生儿外周静脉建立与管理
- 垃圾发电厂节能管理制度
- 云硫矿业招聘试题及答案
- 企业生产设备风险评估报告
- 2025-2030大输液行业发展分析及投资价值研究咨询报告
- 《工程勘察设计收费标准》(2002年修订本)
评论
0/150
提交评论