设为首页
加入收藏
联系我们
首页 基础教程 技术文档 实例分析 数 据 库 疑难杂症 ASP.NET 七夕许愿树 技术论坛
<%-- 最新动态 Begin --%> <%-- 最新动态 End --%>
最新文章
 C#摄像头编程实例
 C#下用P2P技术实现点…
 Asp.net(c#)数…
 SQL Server数据…
 .NET牛人应该知道些什…
 NET牛人应该知道些什么
 SQL Server S…
 备份指定表到另一数据库
 SQLSERVER中快速…
 ASP.NET中url传…
 ASP.NET自动给UR…
 ASP.NET 2.0防…
 ASP.NET 2.0 …
 如何解决ASP.net中…
 sql server 与…
<%-- 最新动态 Begin --%> <%-- 最新动态 End --%>
推荐文章
 关于C#中的REF和黓认…
 读书笔记c#高级编程 委…
 【算法】C#快速排序类
 Visual C#的SQ…
 C#中调用API
 Infragistics…
 C#接口转换
 C#读取设备信息
 用.net操作word
 C# MessageBo…
 Visual C#中的数…
 雅虎公司C#笔试题,看看…
 C#.NET使用NHib…
 .net学习之运算符重载…
 Visual C# 3.…
<%-- 最新动态 Begin --%> <%-- 最新动态 End --%>
热门文章
 ADO.Net与ADO在…
 开发ASP.NET下的M…
 用C#+XMI技术进行U…
 什么是虚拟机?
 C#基础全接触
 C#学习第一天
 雅虎公司C#笔试题,看看…
 C#语言初级入门(1)
 C#中利用正则表达式实现…
 远程重启计算机(C#)
 用.net操作word
 什么是B/S三层?
 VB和C# 语法对比图 …
 Visual C#常用函…
 Visual C#的SQ…
Visual C#中的数据绑定
阅读正文 文字大小:增大 减小  文字行距:增大 减小   双击自动滚屏
本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

复杂型组件的数据绑定:

    在上面的介绍中,了解到对复杂型组件的数据绑定是通过设定组件的某些属性来完成数据绑定的.首先来介绍一下ComboBox组件的数据绑定.

(1).ComboBox组件的数据绑定:

    在得到数据集后,只有设定好ComboBox组件的的三个属性就可以完成数据绑定了,这三个属性是:、"DisplayMember""ValueMember".其中"DataSource"是要显示的数据集,"DisplayMember"是ComboBox组件显示的字段,"ValueMember"是实际使用值.具体如下:

ComboBox1.DataSource = myDataSet ;
ComboBox1.DisplayMember = "person.xm" ;
ComboBox1.ValueMember = "person.xm" ;

    注释:此时绑定是Access 2000数据库中"person"表的"xm"字段.由此可以得到ComboBox组件数据绑定的源程序代码(Combo01.cs),本代码操作数据库是Access 2000:


public class Form1 : Form
{
    private ComboBox ComboBox1 ;
    private Button button1 ;
    private System.Data.DataSet myDataSet ;
    private System.ComponentModel.Container components = null ;
   
    public Form1 ( )
    {
        file://打开数据链接,得到数据集
        GetConnect ( ) ;
        InitializeComponent ( ) ;
    }
    file://清除程序中使用过的资源
    protected override void Dispose (bool disposing)
    {
        if (disposing)
        {
            if (components != null)
            {
                components.Dispose ( ) ;
            }
        }
        base.Dispose (disposing) ;
    }
   
    private void GetConnect ( )
    {
        file://创建一个 OleDbConnection
        string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
        OleDbConnection myConn = new OleDbConnection (strCon) ;
        string strCom = " SELECT * FROM person " ;
        file://创建一个 DataSet
        myDataSet = new DataSet ( ) ;
       
        myConn.Open ( ) ;
        file://用 OleDbDataAdapter 得到一个数据集
        OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
        file://把Dataset绑定person数据表
        myCommand.Fill (myDataSet , "person") ;
        file://关闭此OleDbConnection
        myConn.Close ( ) ;
       
    }
   
    private void button1_Click (object sender , System.EventArgs e)
    {
        ComboBox1.DataSource = myDataSet ;
        ComboBox1.DisplayMember = "person.xm" ;
        ComboBox1.ValueMember = "person.xm" ;
    }
    static void Main ( )
    {
        Application.Run (new Form1 ( )) ;
    }
}

图03:对ComboBox组件数据绑定的程序界面 

    得到了ComboBox组件对本地数据库的数据绑定程序,也就十分方便的得到ComboBox组件绑定Sql Server 2000源程序代码(Combox02.cs)具体如下:


public class Form1 : Form
{
    private ComboBox ComboBox1 ;
    private Button button1 ;
    private System.Data.DataSet myDataSet ;
    private System.ComponentModel.Container components = null ;
   
    public Form1 ( )
    {
        file://打开数据链接,得到数据集
        GetConnect ( ) ;
        InitializeComponent ( ) ;
    }
    file://清除程序中使用过的资源
    protected override void Dispose (bool disposing)
    {
        if (disposing)
        {
            if (components != null)
            {
                components.Dispose ( ) ;
            }
        }
        base.Dispose (disposing) ;
    }
   
    private void GetConnect ( )
    {
        // 设定数据连接字符串,此字符串的意思是打开Sql server数据库,服务器名称为server1,数据库为data1
        string strCon = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " ;
        OleDbConnection myConn = new OleDbConnection (strCon) ;
        myConn.Open ( ) ;
        string strCom = " SELECT * FROM person " ;
        file://创建一个 DataSet
        myDataSet = new DataSet ( ) ;
        file://用 OleDbDataAdapter 得到一个数据集
        OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
        file://把Dataset绑定person数据表
        myCommand.Fill (myDataSet , " person ") ;
        file://关闭此OleDbConnection
        myConn.Close ( ) ;
    }
    private void button1_Click (object sender , System.EventArgs e)
    {
        ComboBox1.DataSource = myDataSet ;
        ComboBox1.DisplayMember = "person.xm" ;
        ComboBox1.ValueMember = "person.xm" ;
    }
    static void Main ( )
    {
        Application.Run (new Form1 ( )) ;
    }
}

(2).ListBox组件的数据绑定:

ListBox组件的数据绑定和ComboBox组件的数据绑定的方法大致相同,也是通过设定"DisplayMember""ValueMember".其中"DataSource"这三个属性来完成的.并且这三个属性在ListBox组件中代表的意思和ComboBox组件的意思基本一样.由此可以得到ListBox组件对本地数据库和远程数据库进行数据绑定的源程序.其中ListBox01.cs是对本地数据库进行数据绑定,ListBox02.cs是对远程数据库进行数据绑定,具体如下:

ListBox01.cs源程序代码节??


public class Form1 : Form
{
    private ListBox ListBox1 ;
    private Button button1 ;
    private System.Data.DataSet myDataSet ;
    private System.ComponentModel.Container components = null ;
   
    public Form1 ( )
    {
        file://打开数据链接,得到数据集
        GetConnect ( ) ;
        InitializeComponent ( ) ;
    }
    file://清除程序中使用过的资源
    protected override void Dispose (bool disposing)
    {
        if (disposing)
        {
            if (components != null)
            {
                components.Dispose ( ) ;
            }
        }
        base.Dispose (disposing) ;
    }
   
    private void GetConnect ( )
    {
        file://创建一个 OleDbConnection
        string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
        OleDbConnection myConn = new OleDbConnection (strCon) ;
        string strCom = " SELECT * FROM person " ;
        file://创建一个 DataSet
        myDataSet = new DataSet ( ) ;
       
        myConn.Open ( ) ;
        file://用 OleDbDataAdapter 得到一个数据集
        OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
        file://把Dataset绑定person数据表
        myCommand.Fill (myDataSet , "person") ;
        file://关闭此OleDbConnection
        myConn.Close ( ) ;
       
    }
   
    private void button1_Click (object sender , System.EventArgs e)
    {
        ListBox1.DataSource = myDataSet ;
        ListBox1.DisplayMember = "person.xm" ;
        ListBox1.ValueMember = "person.xm" ;
    }
    static void Main ( )
    {
        Application.Run (new Form1 ( )) ;
    }
}



图04:对ListBox组件数据绑定的程序界面 

    以下代码是ListBox组件对Sql Server 2000数据库进行数据绑定的源程序节?↙istBox02.cs):


{
    private ListBox ListBox1 ;
    private Button button1 ;
    private System.Data.DataSet myDataSet ;
    private System.ComponentModel.Container components = null ;
    public Form1 ( )
    {
        file://打开数据链接,得到数据集
        GetConnect ( ) ;
        InitializeComponent ( ) ;
    }
    file://清除程序中使用过的资源
    protected override void Dispose (bool disposing)
    {
        if (disposing)
        {
            if (components != null)
            {
                components.Dispose ( ) ;
            }
        }
        base.Dispose (disposing) ;
    }
   
    private void GetConnect ( )
    {
        // 设定数据连接字符串,此字符串的意思是打开Sql server数据库,服务器名称为server1,数据库为data1
        string strCon = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " ;
        OleDbConnection myConn = new OleDbConnection (strCon) ;
        myConn.Open ( ) ;
        string strCom = " SELECT * FROM person " ;
        file://创建一个 DataSet
        myDataSet = new DataSet ( ) ;
        file://用 OleDbDataAdapter 得到一个数据集
        OleDbDataAdapter myCommand = new OleDbDataAdapter (strCom , myConn) ;
        file://把Dataset绑定person数据表
        myCommand.Fill (myDataSet , " person ") ;
        file://关闭此OleDbConnection
        myConn.Close ( ) ;
    }
   
    private void button1_Click (object sender , System.EventArgs e)
    {
        ListBox1.DataSource = myDataSet ;
        ListBox1.DisplayMember = "person.xm" ;
        ListBox1.ValueMember = "person.xm" ;
    }
    static void Main ( )
    {
        Application.Run (new Form1 ( )) ;
    }
}


本文由中国C#技术学习中心整理  如果你对本文有不明之处请到技术论坛讨论!

中国C#技术交流QQ群:6337034  10976424  9383681  35248582  35248645
版权所有:中国C#技术学习中心 Copyright ? 2006-2008
建议浏览分辨率使用:1024*768分辨率
粤ICP备05002251号