最近在研究机房收费系统的组合查询的方法时,看到了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. 关于函数strtok和strtok_r的使用要点和实现原理(二)

    http://www.cnblogs.com/stemon/p/4013264.html已经介绍了使用strtok函数的一些注意事项,本篇将介绍strtok的一个应用并引出strtok_r函数. 1. ...

  2. 使用ConcurrentDictionary实现轻量缓存

    项目中需要用到一个轻量缓存,存储重复使用的数据.在设计中需要考虑:1.做成通用组件,为未来其他模块方法操作结果做准备.2.缓存模块需要接口化,为未来替换使用外部缓存做准备.3.使用默认缓存过期时间,单 ...

  3. Android 图片平铺效果实现的3种方法

    Html中平铺的效果,那么我们都是怎么样才能实现的那,我们其实主要用到的就是api,我们一开始new一个bitmap,就可以了,那么我们就来说说第二种方法,那就在用到了xml,上面我们说了两个方法,但 ...

  4. 练习-checkbox 全选 ,反选, 单选,以及取值

    1.方法1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w ...

  5. python进阶--文件读写操作

    Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...

  6. 利用指针突破C++编译器的防线

    C++ 面向对象的一大特性就是封装,使用不同的访问控制符来控制外接对其的访问权限.比如: class A { public: A(): i(){} void print(){ cout << ...

  7. C++编程学习52个经典网站 强力推荐

    C/C++是最主要的编程语言.这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码.这份清单提供了源代码的链接以及它们的小说明.我已尽力包括最佳的C/C++源代码的网站.这不是一个完整的清 ...

  8. 使用AFNetworking请求新浪微博数据接口出错解决办法

    在使用AFNetworking请求新浪微博数据接口时会出这样的错误,如 这样的错误说明,AFNetworking无法处理这样的数据格式.所以,我们需要修改AFNetworking中的一些接收数据格式. ...

  9. C#生成PDF

    参考书籍 http://wenku.baidu.com/link?url=N2jjf_JNIuKUxkODxePvNTlZNyFQ6qsx_TPKenDqhL9ShKojw95gs38fHihXg2e ...

  10. 简单C#文字转语音

    跟着微软走妥妥的,C#文字转语音有很多参数我就不说了,毕竟我也是初学者.跟大家分享最简单的方法,要好的效果得自己琢磨喽: 先添加引用System.Speech程序集: using System; us ...