您的位置:首页 > 产品设计 > UI/UE

[转]CheckedlistBox绑定数据库,并获得所有选中的值(ValueMember)和显示值(DisplayMember)

2008-10-04 09:07 267 查看
http://hi.baidu.com/qzrc/blog/item/f1bdd158ca632c81810a187f.html

CheckedlistBox绑定数据库,并获得所有选中的值(ValueMember)和显示值(DisplayMember)

2006年10月25日 星期三 23:22
CheckedlistBox绑定数据库,并获得所有选中的值(ValueMember)和显示值(DisplayMember)

新建一个窗体:需要两个控件:CheckedlistBox控件 命名为:ChkListSecName

                                   Button控件 命名为:BtnOk

CheckedlistBox控件比较有用到两个属性分别为CheckOnClick为True:表示单击就选中当前行,为False:要点两下才可以选中。(默认值为False)。还有一个属性为ThreeDCheckBoxes为True:表示三维的选中标记,为False:表示表面的显示标记。(默认值为False)。

在当前窗体代码的最上面引用如下代码:Imports System.Data.SqlClient

接着定义两个变量:连接变量(Con)和数据集(ChkListDst)

Dim str As String = "data source=(Local);persist security info=false;user id=sa;password=;initial catalog=TestData"

Dim Con As New SqlConnection(str)

Dim ChkListDst As New DataSet

接着定义一个过程,把CheckedlistBox绑定到数据库

Public Sub ChkListBin()

  Try

     If Con.State = ConnectionState.Closed = True Then '如果连接是关闭的,就执行打开连接

        Con.Open()  '打开连接

     End If

     ChkListDst.Clear()   '清空数据集

     Dim AdpChkList As New SqlDataAdapter("Select SecNo,SecName from DeptData Order By SecNo", Con) '定义数据适配器所获得的值

     AdpChkList.Fill(ChkListDst, "SecName")  '把数据适配器填充到数据集中,表名的映射名为SecName

     ChkListSecName.DataSource = ChkListDst.Tables("SecName") '定义CheckedlistBox的数据源

     ChkListSecName.ValueMember = "SecNo"       '定义CheckedlistBox的Value值,没有直接显示出来

     ChkListSecName.DisplayMember = "SecName"   '定义CheckedlistBox的Display值,直接显示出来

  Catch ex As Exception

     MsgBox(ex.ToString) '出错提醒

  Finally

    If Con.State = ConnectionState.Open = True Then '如果连接是打开的,就执行关闭连接

       Con.Close()  '关闭连接

    End If

  End Try

End Sub

在它窗口的初始化加载的时候,加入刚刚定义的把CheckedlistBox绑定数据库的过程

Private Sub FrmChkList_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

   ChkListBin()

End Sub

在按钮事件中

Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click

   Dim N As Integer

   For N = 0 To ChkListSecName.Items.Count - 1

       If ChkListSecName.GetItemChecked(N) = True Then '从第1条到最后一条,只要为True进入判断

          ChkListSecName.SelectedIndex = ChkListSecName.GetItemText(N) '只要为True,让它为当前行

          MsgBox(ChkListSecName.SelectedValue & ChkListSecName.Text)   

          '显示当前行的值(ValueMember)和显示值(DisplayMember)

       End If

   Next

End Sub

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐