最近在研究机房收费系统的组合查询的方法时,看到了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与其数据库绑定的原理都是相通的,相信大家都可以举一反三也。

ComboBox控件绑定数据源的更多相关文章

  1. ComboBox控件绑定数据源后,添加'请选择'或'全部'

    ComboBox控件绑定数据源后,添加'请选择'或'全部' 当使用ComboBox控件绑定数据源之后,通过Items 属性添加的数据是无效的,此时如果要在所有选项前添加 选项 ,则需要考虑从数据源下手 ...

  2. .Net平台Winform两个ComboBox控件绑定同一个数据源

    今天WINFROM编程遇到这么一个问题:是有关WINFORM中两个comboBox控件绑定同一个数据源的问题,在窗体的界面上有两个comboBox,我在Form1_Load中对他们做了数据绑定(具体代 ...

  3. winform combobox控件绑定 分类: WinForm 2014-04-17 14:34 118人阅读 评论(0) 收藏

    想要达到的效果:把数据库中的一列数据绑定到combobox控件中. 数据库表:T_Task//任务表 列名:Task_Name//名称 主键:Task_ID combobox控件名称:cbName 解 ...

  4. C#端加载数据库,Combobox与Node控件绑定数据源demo示例

    最近一直在做网页.用的js比较多,最近需要做一个C#相关的demo,一开始还有点不适应,写了几句有点感觉了 本篇博客的主要内容是C#怎么读取数据库文件里的数据以及相关控件如何绑定数据源,所做的Demo ...

  5. C#控件绑定数据源方式

    1:控件数据源绑定泛型Dictionary<string,string> ): Dictionart<string,string> D=new Dictionary(strin ...

  6. ASP.NET控件绑定数据源

    DataList/GridView/Repeater DataSet表示数据集,其中包含表,约束和表之间的关系.与现有数据源的交互通过DataAdapter来控制. 源代码示例: SqlDataAda ...

  7. DataGridView控件绑定数据源

    前言: 近期听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了 ...

  8. DropdownList控件绑定数据源显示system.data.datarowview的问题

    .net开发的时候经常需要用到在后台取数据再绑定到控件的问题,通常只需要连接数据库,从数据库取出数据,放到Dataset里面,然后再设置控件的DataSource为这个Dataset,然后再datab ...

  9. WPF中ComboBox控件绑定键值对操作

    WPF中下拉框将键值对作为其数据源的具体操作.本实例以枚举类型以及枚举特性描述字符串生成键值对来进行. namespace ViewC { /// <summary> /// View.x ...

随机推荐

  1. poj2459 Treasure Exploration (闭包+二分)

    这道题是让求派出机器人的最少数量,乍一看以为是简单的求最小路径覆盖,后来发现错了,因为有的点可以走多次,而二分中每个点只能走一次,所以要先用floyd进行传递闭包,然后用二分 #include< ...

  2. Linux网络管理——子网掩码

    1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...

  3. css负边距自适应布局

    单列定宽单列自适应布局: <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> ...

  4. jquery结合Highcharts插件实现动态数据仪表盘图形化显示效果

    仪表盘显示效果如图: 方法一效果图: 方法二效果图(插件版本4.0.1): ​ js代码如下: $(function(){ //方法一: var chart = new Highcharts.Char ...

  5. Viewing the Raw SQL Statement(xcode で)

    Thanks to Core Data. Even without learning SQL and database, you’re able to perform create, select, ...

  6. skynet初学

    记录下命令 git clone https://github.com/cloudwu/skynet.git sudo apt-get install autoconf sudo apt-get ins ...

  7. Oracle EBS-SQL (GL-1):从总帐追溯到接收

    SELECT je_header_id, je_line_num, trx_class_name, trx_type_name, trx_number_displayed, trx_date,comm ...

  8. 武汉新芯:已建成IP体系,欲以存储器为特色

    武汉新芯集成电路制造公司(XMC)是地方政府投资的半导体企业,2006年由湖北省.武汉市.武汉市东湖高新区投资,并由东湖高新区管理的全资国有企业,前几年委托SMIC(中芯国际)经营管理,从2012年底 ...

  9. NOI2011 Day1

    NOI2011 Day1 兔农 题目描述:\(fib[1]=fib[2]=1, fib[i]=fib[i-2]+fib[i-1] (i\geq 3)\),若\(fib[i] \equiv 1(mod ...

  10. saiku中默认级别all的国际化

    在制作saiku的schema文件的时候,当你选择层次的属性hasAll为true的时候,系统默认会为你的层次添加一个“(all)”级别,你无法给它增加一个caption属性来国际化它,因为他不是你创 ...