zoukankan      html  css  js  c++  java
  • ComboBox控件绑定数据源

    最近在研究机房收费系统的组合查询的方法时,看到了ComboBox控件可以进行数据绑定,我觉得这个功能真的很不错,可以给我省去很多的麻烦。

    下面是我组合查询窗体界面


    一、数据转换方法

    现在我们开看一下我以前写的一段代码:

    1、在界面初始化的时候向ComboBox中添加数据

       ''' <summary>
        ''' 添加界面
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks></remarks>
        Private Sub frmQueryUserWorklog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            '向字符中添加数据
            cboFields1.Items.Add(" ")
            cboFields1.Items.Add("操作用户")
            cboFields1.Items.Add("注册日期")
            cboFields1.Items.Add("注册时间")
            cboFields1.Items.Add("注销日期")
            cboFields1.Items.Add("注销时间")
            cboFields1.Items.Add("操作电脑")
            cboFields1.DropDownStyle = ComboBoxStyle.DropDownList
            cboFields1.SelectedIndex = 0                                                                                                                           End Sub

    2、对文本框中的内容进行数据转换

        ''' <summary>
        ''' 改变用户工作记录字符串
        ''' </summary>
        ''' <param name="strUserInfo   ">匹配用户信息</param>
        ''' <returns>strUser,返回匹配用户信息的字符串</returns>
        ''' <remarks></remarks>
        Public Function ChangeUserFields(ByVal strUserInfo As String) As String      
            '返回用户字符   
            Dim strUser As String
            Select Case strUserInfo
            Case "操作用户"
                 strUser = "UserNo"
            Case "注册日期"
                 strUser = "LoginDate"
            Case "注册时间"
                 strUser = "LoginTime"
            Case "注销日期"
                 strUser = "LogoutDate"
            Case "注销时间"
                 strUser = "LogoutTime"
            Case "操作电脑"
                 strUser = "ComputerName"
            Case Else
                 strUser = " "
            End Select
    
            Return strUser
        End Function

    二、ComboBox控件绑定数据之自建数据表

    现在看一下我现在所用方法的代码

      ''' <summary>
        ''' 添加界面
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks></remarks>
        Private Sub frmQueryUserWorklog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            '设置cboFields的类型
            cboFields1.DrawMode = DrawMode.Normal
            cboFields1.DropDownStyle = ComboBoxStyle.DropDownList
            cboFields1.FlatStyle = FlatStyle.Flat
    
            '定义数据表
            Dim dt As DataTable = New DataTable
            dt.Columns.Add("Value")
            dt.Columns.Add("Name")
    
            '向第一行中添加数据
            Dim dr0 As DataRow = dt.NewRow
            dr0("Value") = "UserNo"
            dr0("Name") = "操作用户"
            dt.Rows.Add(dr0)
    
            '向第二行中添加数据
            Dim dr1 As DataRow = dt.NewRow
            dr1("Value") = "LoginDate"
            dr1("Name") = "注册日期"
            dt.Rows.Add(dr1)
    
            '向第三行中添加数据
            Dim dr2 As DataRow = dt.NewRow
            dr2("Value") = "LoginTime"
            dr2("Name") = "注册时间"
            dt.Rows.Add(dr2)
    
            '向第四行中添加数据
            Dim dr3 As DataRow = dt.NewRow
            dr3("Value") = "LogoutDate"
            dr3("Name") = "注销日期"
            dt.Rows.Add(dr3)
    
            '向第五行中添加数据
            Dim dr4 As DataRow = dt.NewRow
            dr4("Value") = "LogoutTime"
            dr4("Name") = "注销时间"
            dt.Rows.Add(dr4)
    
            '向第六行中添加数据
            Dim dr5 As DataRow = dt.NewRow
            dr5("Value") = "ComputerName"
            dr5("Name") = "电脑名称"
            dt.Rows.Add(dr5)
    
            '向cboFields中添加数据源
            cboFields1.DataSource = dt
    
            '在cboFields中ListControl中显示的属性
            cboFields1.DisplayMember = "Name"
            '在cboFields中ListControl中实际的属性
            cboFields1.ValueMember = "Value"
        End Sub

    三、ComboBox控件绑定数据之数据库

    1、数据库表的字段


    2、代码展示

    ''' <summary>
        ''' 添加界面
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks></remarks>
        Private Sub frmQueryUserWorklog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '定义数据库字符
            Dim sqlConnectStr As String = "Data Source=" ";Initial Catalog=ComputerRoomCharge_sys;User ID=sa;Pwd=123456"
            '获得字符串连接
            Private ReadOnly strConnection As String = System.Configuration.ConfigurationManager.AppSettings("sqlConnectStr")
            '设置连接
            Dim conn As SqlConnection = New SqlConnection(strConnection)
            '定义命令
            Dim cmd As New SqlCommand
            '定义适配器
            Dim sqlAdapter As SqlDataAdapter
            '定义数据集
            Dim ds As New DataSet
            'sql语句
            Dim strSql As String = "select UserNo,UserName from T_UserInfo "
            '给cmd赋值
            cmd.CommandText = strSql
            cmd.CommandType = CommandType.Text
            cmd.Connection = conn
            sqlAdapter = New SqlDataAdapter(cmd)
    
            Try
                If conn.State = ConnectionState.Closed Then
                    conn.Open()
                End If
    
                '填充数据集
                sqlAdapter.Fill(ds)
    
            Catch ex As Exception
                MsgBox(ex.Message, , "数据库操作")
            Finally
                Close(conn)
                Dispose(cmd)
            End Try
    
    
            cboFields1.DataSource = ds
            cboFields1.ValueMember = "Value"
            cboFields1.DisplayMember = "Name"
            cboFields1.SelectedIndex = 0
        End Sub

    四、总结

    1、对于上面提到的三种方法,我认为第一种方法还是不值得推荐的,因为对于此控件绑定数据的功能,有其自己的好处,即理解容易,有操作简单,不容易写乱。对于第二种和第三种方法就要根据具体情况而定了,如果数据库中没有自己想要绑定的数据就采用方法二、如果数据库中有自己想要绑定的数据就采用方法三。

    2、对于数据库绑定也可以在其控件属性中按照提示可以进行逐步操作,我这里就不为大家演示了,大家可以自己去尝试一下。

    3、对于数据源的绑定类型还包括服务、对象、SharePoint与其数据库绑定的原理都是相通的,相信大家都可以举一反三也。

  • 相关阅读:
    获取微信用户在微信小店的订单
    微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数
    微信查询四六级成绩代码
    CURL SSL为6的由来
    阿里云虚拟主机安装禅道总结
    Android手机特殊软件配置
    微信支付参数一致性校验
    微信查询火星天气
    php下curl ssl常用问题
    群发技术-使用python3给微信好友群发消息
  • 原文地址:https://www.cnblogs.com/james1207/p/3292122.html
Copyright © 2011-2022 走看看