资源描述:
《使用c#开发Windows数据库应用程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章使用c#开发Windows数据库应用程序7.1数据绑定数据绑定是指数据源元素与图形界面的接口技术,在应用程序中使用数据绑定减少了为从数据对象检索数据而必须编写的代码量。ADO.NET为图形控件提供了整洁的数据绑定结构。数据源可以是从数组到数据库中的一组记录,或者是实现IEnumerable接口的任何对象(如DataView对象)。窗体绑定有两种方式:简单数据绑定和复杂数据绑定。Windows数据绑定控件能够绑定数据,因为Binding类提供了这样的功能(System.Windows.Forms.Binding),这个类由.NETFramework提供,负
2、责在每个控件属性和数据源中的数据元素之间创建简单的绑定。textBox1.DataBindings.Add(“Text”,ds,”Employees.FirstName”);控件DataBinding属性可以使用Add方法添加其中的每个属性。Add方法有三个参数,第一个参数是控件属性的名称。第二个参数是下列任意类,或者实现下列任意接口的类的实例。第三个参数描述数据源中的数据成员,它必须是能转化为标量值的字符串文字。接口实现接口的一些类ICollectionArray,BitArrayIListSourceDataSet,DataTableITypedListD
3、ataView,DataViewManager表7-1可用于Binding类构造函数的第二个参数的类如果想显示声明Binding对象,可用下面的代码实现:BindingnewBind=newBinding(“Text”,ds,”Employee.FirstName”);textBox1.DataBindings.Add(newBind);如果想把两个或多个控件绑定到相同的数据元素,可以使用这种方法:textBox1.DataBindings.Add(newBind);Label1.DataBindings.Add(newBind);实现把TextBox控件的T
4、ext属性绑定到表中的数据元素上。将TextBox和Label控件绑定到表中相同的列。7.1.1简单数据绑定简单数据绑定是指每个控件属性与数据源的单一元素之间的一对一关系。简单数据绑定可用于一次显示一个值的控件。如TextBox的Text属性,把它绑定到DataTable中的一个列。如果修改了底层的数据源,则调用控件的Refresh方法更新绑定过的数据源,反应所发生的变化。textBoxID.DataBingdings.Add("Text",custList,"CustomerID");textBoxTitle.DataBingdings.Add("Text"
5、,custList,"ContactTitle");textBoxLastName.DataBingdings.Add("Text",custList,"ContactName");textBoxFirstName.DataBingdings.Add("Text",custList,"CompanyName");textBoxAddress.DataBingdings.Add("Text",custList,"Address");将一组TextBox控件上的Text属性绑定到作为客户列表存储的Customer对象的属性。7.1.2复杂数据绑定复杂数据绑定指将控
6、件绑定到集合(而不是将控件绑定到集合内的单个项)。下面的例子:将ComboBox绑定到State对象的一个数组。publicstructState{privatestringshortName,longName;publicState(stringlongName,stringshortName){this.shortName=shortName;this.longName=longName;}publicstringShortName{get{returnshortName;}}publicstringLongName{get{returnLongName;
7、}}}privateState[]States=newState[]{newState("Alabama","AL"),newState("Washington","WA");}comboBoxState.DataSource=States;comboBoxState.DisplayMenber="LongName";通常,在数据绑定窗体中,ComboBox用于查找值。7.2数据源的类型7.2.1数组作为数据源在大多数情况下,Array最适合于存储和检索一致的数据。数组在运行时支持对数据的处理,且容易在代码中通过ICollection接口使用。privatev
8、oidForm1_load(objec