我在一个页面的load事件中这样写到(加载数据库中的员工编号,员工姓名到此combobox中)
 Dim mConn As New Connection
        Dim conn As SqlConnection = mConn.SqlConnection
        Dim comm As SqlCommand = conn.CreateCommand
        Dim sqlDbReader As SqlDataReader
        Try
            conn.Open()
            comm.CommandText = "select  hr_EmployeeID,hr_EngName,hr_ChiName,hr_DepartmentEngName,hr_TeamName  from v_EmployeeInfo order by hr_EmployeeID " 'where hr_CompanyID in (" & MDIPmain.sysCompanyID & ") and hr_DepartmentID in (" & MDIPmain.sysDepartmentID & ")"
            sqlDbReader = comm.ExecuteReader
            Dim DBTable As New DataTable
            DBTable.Load(sqlDbReader)
            Cbb_Employee.DataSource = DBTable
            Cbb_Employee.DisplayMember = "hr_EmployeeID"
            Cbb_Employee.ValueMember = "hr_EngName"
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly, "錯誤")
        Finally
            comm.Dispose()
            conn.Dispose()
            conn.Close()
        End Try
        If Cbb_Employee.Items.Count > 0 Then
            Cbb_Employee.SelectedIndex = 0
        End If
Private Sub Cbb_Employee_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cbb_Employee.TextChanged
        txt_EmpName.Text = Cbb_Employee.SelectedValue.ToString
        btn_AddToChecked.Enabled = True
    End Sub结果txt_EmpName.text=System.Data.DataRowView
第二次正常,请问应该如何改?

解决方案 »

  1.   

                Cbb_Employee.DisplayMember = "hr_EmployeeID" 
                Cbb_Employee.ValueMember = "hr_EngName" 
    写反了吧
      

  2.   

    Dim mConn As New Connection 
            Dim conn As SqlConnection = mConn.SqlConnection 
            Dim comm As SqlCommand = conn.CreateCommand 
            Dim sqlDbReader As SqlDataReader 
            Try 
                conn.Open() 
                comm.CommandText = "select  hr_EmployeeID,hr_EngName,hr_ChiName,hr_DepartmentEngName,hr_TeamName  from v_EmployeeInfo order by hr_EmployeeID " 'where hr_CompanyID in (" & MDIPmain.sysCompanyID & ") and hr_DepartmentID in (" & MDIPmain.sysDepartmentID & ")" 
                sqlDbReader = comm.ExecuteReader 
                Dim DBTable As New DataTable 
                DBTable.Load(sqlDbReader) 
                Cbb_Employee.DataSource = DBTable 
                Cbb_Employee.DisplayMember = "hr_EmployeeID" 
                Cbb_Employee.ValueMember = "hr_EngName" 
     txt_EmpName.Text = Cbb_Employee.SelectedValue.ToString 
            Catch ex As Exception 
                MsgBox(ex.Message, MsgBoxStyle.OkOnly, "錯誤") 
            Finally 
                comm.Dispose() 
                conn.Dispose() 
                conn.Close() 
            End Try 
            If Cbb_Employee.Items.Count > 0 Then 
                Cbb_Employee.SelectedIndex = 0 
            End If 
    下面正常
    这样就OK了
      

  3.   

    Dim mConn As New Connection 
            Dim conn As SqlConnection = mConn.SqlConnection 
            Dim comm As SqlCommand = conn.CreateCommand 
            Dim sqlDbReader As SqlDataReader 
            Try 
                conn.Open() 
                comm.CommandText = "select  hr_EmployeeID,hr_EngName,hr_ChiName,hr_DepartmentEngName,hr_TeamName  from v_EmployeeInfo order by hr_EmployeeID " 'where hr_CompanyID in (" & MDIPmain.sysCompanyID & ") and hr_DepartmentID in (" & MDIPmain.sysDepartmentID & ")" 
                sqlDbReader = comm.ExecuteReader 
                Dim DBTable As New DataTable 
                DBTable.Load(sqlDbReader) 
                Cbb_Employee.DataSource = DBTable 
                Cbb_Employee.DisplayMember = "hr_EmployeeID" 
                Cbb_Employee.ValueMember = "hr_EngName" 
     txt_EmpName.Text = Cbb_Employee.SelectedValue.ToString 
            Catch ex As Exception 
                MsgBox(ex.Message, MsgBoxStyle.OkOnly, "錯誤") 
            Finally 
                comm.Dispose() 
                conn.Dispose() 
                conn.Close() 
            End Try 
            If Cbb_Employee.Items.Count > 0 Then 
                Cbb_Employee.SelectedIndex = 0 
            End If 
    下面正常
    这样就OK了
      

  4.   

    Dim mConn As New Connection 
            Dim conn As SqlConnection = mConn.SqlConnection 
            Dim comm As SqlCommand = conn.CreateCommand 
            Dim sqlDbReader As SqlDataReader 
            Try 
                conn.Open() 
                comm.CommandText = "select  hr_EmployeeID,hr_EngName,hr_ChiName,hr_DepartmentEngName,hr_TeamName  from v_EmployeeInfo order by hr_EmployeeID " 'where hr_CompanyID in (" & MDIPmain.sysCompanyID & ") and hr_DepartmentID in (" & MDIPmain.sysDepartmentID & ")" 
                sqlDbReader = comm.ExecuteReader 
                Dim DBTable As New DataTable 
                DBTable.Load(sqlDbReader) 
                Cbb_Employee.DataSource = DBTable 
                Cbb_Employee.DisplayMember = "hr_EmployeeID" 
                Cbb_Employee.ValueMember = "hr_EngName" 
    txt_EmpName.Text = Cbb_Employee.SelectedValue.ToString 
            Catch ex As Exception 
                MsgBox(ex.Message, MsgBoxStyle.OkOnly, "錯誤") 
            Finally 
                comm.Dispose() 
                conn.Dispose() 
                conn.Close() 
            End Try 
            If Cbb_Employee.Items.Count > 0 Then 
                Cbb_Employee.SelectedIndex = 0 
            End If 
    Private Sub Cbb_Employee_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cbb_Employee.TextChanged 
            txt_EmpName.Text = Cbb_Employee.SelectedValue.ToString 
            btn_AddToChecked.Enabled = True 
        End Sub 这样就OK了