使用C-开发Windows数据库应用程序_第1页
使用C-开发Windows数据库应用程序_第2页
使用C-开发Windows数据库应用程序_第3页
使用C-开发Windows数据库应用程序_第4页
使用C-开发Windows数据库应用程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章使用C#开发Windows数据库应用程序

简单数据绑订复杂数据绑订数据源的类型DataGrid的使用Windows应用程序开发实例

本章要点8.1数据绑定数据绑定是指数据源元素与图形界面的接口技术,如使用TextBox控件绑定到表中的单个值。窗体控件可以按照两种方式绑定数据:简单数据绑定和复杂数据绑定。Windows数据绑定控件(如Label、Button或TextBox能够绑定数据,因为Binding类提供了这样的功能(System.Windows.Forms.Binding),这个类由.NETFramework提供,负责在每个控件属性和数据源中的数据元素之间创建简单的绑定。如:textBox1.DataBindings.Add(″Text″,da,″Employees.FirstName″);控件的DataBindings属性可以使用Add方法添加其中的每个属性。Add方法有三个参数。第一个参数是控件属性的名称,如TextBox控件的Text属性或者DataGrid控件的DataSource属性。第二个参数是下列任意类,或者实现下列任意接口的类的实例,如表8-1列出几个接口及实现这些接口的类。第三个参数描述数据源中的数据成员。它是必须能转化为标量值的字符串文字,如使用DataSet时要根据表名称所选的列。表8-1可用于Binding类构造函数的第二个参数的类接口实现接口的一些类ICollectionArray,BitArrayIListSourceDataSet,DataTableITypedListDataView,DataViewManager如果想显式声明Binding对象,则可以使用类似下面的代码,例如,想把TextBox控件的Text属性绑定到表中的数据元素上。BindingnewBind=newBinding(″Text″,ds,″Employees.FirstName″);textBox1.DataBindings.Add(newBind);8.1.1简单数据绑定简单数据绑定是指每个控件属性与数据源的单一元素之间的一对一关系。下面的例子演示简单数据绑定,将一组TextBox控件上的Text属性绑定到作为客户列表存储的Customer对象的属性。在控件上使用DataBindings集合添加简单数据绑定。textBoxID.DataBindings.Add("Text",custList,"CustomerID");textBoxTitle.DataBindings.Add("Text",custList,"ContactTitle");textBoxLastName.DataBindings.Add("Text",custList,"ContactName");textBoxFirstName.DataBindings.Add("Text",custList,"CompanyName");textBoxAddress.DataBindings.Add("Text",custList,"Address");每个TextBox.Text都绑定到当前Customer对象,如同BindingContext进行维护一样。若要更改当前对象,可使用BindingContext递增或递减集合的Position属性。例如,通过按如下所示处理按钮的Click事件实现MoveNext按钮。privatevoidbuttonMoveNext_Click(objectsender,System.EventArgse){this.BindingContext[custList].Position++;}每当位置更改时,BindingContext引发一个事件。this.BindingContext[custList].PositionChanged+=newSystem.EventHandler(customer_PositionChanged);privatevoidcustomer_PositionChanged(objectsender,System.EventArgse){textBoxPosition.Text="Record"+(this.BindingContext[custList].Position+1)+

"of"+custList.Length;}8.1.2复杂数据绑定

复杂数据绑定指将控件绑定到集合(而不是将控件绑定到集合内的单个项)。下面的代码将ComboBox绑定到State对象的一个数组。publicstructState{privatestringshortName,longName;publicState(stringlongName,stringshortName){this.shortName=shortName;this.longName=longName;}publicstringShortName{get{returnshortName;}}publicstringLongName{get{returnlongName;}}}privateState[]States=newState[]{newState("Alabama","AL"),newState("Washington","WA),}comboBoxState.DataSource=States;comboBoxState.DisplayMember="LongName";8.2数据源的类型8.2.1数组作为数据源在大多数情况下,Array最适合于存储和检索一致的数据。数组在运行时支持对数据的处理,且容易在代码中通过ICollection接口使用。例如,privatevoidForm1_Load(objectsender,System.EventArgse){String[]book=newString[]{"操作系统","2005年4月","25.00元"};textBox1.DataBindings.Add("Text",book,null);}例如编写如下代码可以实现数组元素遍历的功能:BindingManagerBasebManager=this.BindingContext[book,null];bManager.Position+=1;8.2.2数据表作为数据源DataTable类实现IListSource接口。DataTable数据源既可用于简单绑定例子,也可用于复杂绑定例子。把DataTable绑定到控件可以有两种方式,一种是把整个表绑定到支持复杂绑定的控件上(可以一次显示多个记录的控件),另一种是把单个的列绑定到支持简单绑定的控件上。下面这个例子把ListBox控件绑定到了从填充过的DataSet提取的DataTable对象上,如下面的代码所示:DataTablemyTable=ds.Tables[″Employees″];listBox1.DataSource=myTable;listBox1.DisplayMember=″FirstName″;下面的代码通过给DataBindings集合添加绑定以及将DataTable中的列名作为数据成员,把文本框绑定到DataTable上实现了简单数据绑定。textBox1.DataBindings.Add(″Text″,myTable,″FirstName");8.2.3数据集作为数据源数据集DataSet类实现IlistSource接口。因为DataSet的数据绑定快速而直观,而且可以实现与数据源断开连接。这使它成为数据绑定控件的重要数据源之一。下面的代码把DataSet绑定到一个页面的两个Label控件上,这些代码被放置在Form_Load事件处理程序中://填充数据集da.Fill(ds,″Products″)首先,用Northwind数据库的Products表中的数据填充DataSet。接着,把特定的字段绑定到两个把textBox控件上://把textBox1的Text绑定到ProductName列上textBox1.DataBindings.Add(″Text″,ds,″Products.ProductName″);//把textBox2的Text绑定到UnitPrice列上textBox2.DataBindings.Add(″Text″,ds,″Products.UnitPrice″);如果要浏览数据,同样可以使用BindingManager来实现这个功能。8.2.4数据视图作为数据源DataView类实现ItypedList接口,提供DataTable的可定制视图。绑定到DataView对象像绑定到DataTable对象一样简单,因为DataView提供了DataTable内容的动态视图。下面的代码实现了将数据绑定到数据视图://填充数据集da.Fill(ds,″Employees″);DataTablemyTable=ds.Tables[″Employees″];//创建一个数据视图DataViewdv=newDataView(myTable,″Country=’USA’″,″FirstName″,DataViewRowState.CurrentRows);//绑定到FirstName列textBox1.DataBindings.Add(″Text″,dv,″FirstName″);//绑定到FirstName列textBox2.DataBindings.Add(″Text″,dv,″LastName″);本例代码首先用数据填充DataSet,接着创建DataTable,然后使用DataView对象提取数据,从DataTable对象的表中选择住在美国的所有雇员的姓名列,最后进行数据绑定。8.3DataGrid的使用8.3.1使用DataGrid显示数据DataGrid可以为数据集提供用户界面、相关表之间的导航功能以及丰富的格式设置和编辑功能。数据的显示和操作是两种不同的功能:用户界面由控件处理,而数据更新由Windows窗体数据绑定结构和.NETFramework数据提供程序来处理。因此,绑定到同一个数据源的多个控件将保持同步。为了使DataGrid控件起作用,应在设计时使用DataSource和DataMember属性,或在运行时使用SetDataBinding方法将其绑定到数据源。这种绑定使DataGrid指向实例化的数据源对象(如DataSet或DataTable),同时DataGrid控件显示对数据所执行操作的结果。大多数数据特定的操作都是通过数据源而不是DataGrid来执行。在DataGrid中一次只能显示一个表。如果在表之间定义了父子关系,则用户可以在相关表之间移动以选择要在DataGrid控件中显示的表。对于DataGrid有效的数据源包括:DataTable类,DataView类,DataSet类和DataViewManager类。DataGrid控件可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论