隐藏ComboBox.Item中的String.Format部分

时间:2017-04-25 12:46:48

标签: mysql string vb.net combobox

是否可以隐藏String.Format的一部分?

这是我的代码:

'Select Product'
Try
    MysqlConn.Close()
    MysqlConn.Open()
    Dim Query As String
    Query = "select id, name,id_maker, id_types from product ORDER BY name ASC"
    COMMAND = New MySqlCommand(Query, MysqlConn)
    READER = COMMAND.ExecuteReader
    While READER.Read
        Dim sName = READER.GetString("name")
        Dim sMaker = READER.GetString("id_maker")
        Dim sTypes = READER.GetString("id_types")
        Dim sId = READER.GetString("id")

        'ComboBox1.Items.Add(sName)'
        ComboBox1.Items.Add(String.Format("{0}|{1}|{2}|{3}", sName, sMaker, sTypes, sId))


    End While
Catch ex As Exception
    MessageBox.Show(ex.Message)
Finally
    MysqlConn.Dispose()
End Try
'Select Product'

我想在sId中隐藏ComboBox ComboBox1.Text,因为稍后我需要使用sub.putExtra("emp-type","EMPLOYEE TYPE HERE"); 的查询,并且必须使用id。

2 个答案:

答案 0 :(得分:0)

也许您可以更改将数据分配到ComboBox的方式。

首先要做的是更改查询并使用CONCAT

SELECT id, CONCAT(name,'|',id_maker,'|',id_types) AS value FROM product ORDER BY name ASC

我还会实施Using

  

托管资源由.NET Framework垃圾收集器(GC)处理,无需您进行任何额外编码。对于托管资源,您不需要使用“使用”块。但是,您仍然可以使用“使用”块来强制处理受管资源,而不是等待垃圾回收器。

您也不需要READER。而是将数据加载到DataTable并将其分配给.DataSource上的ComboBox属性。

您的代码看起来像这样:

Using con As New MySqlConnection(connectionString)
      cmd As New MySqlCommand("SELECT id, CONCAT(name,'|',id_maker,'|',id_types) AS value FROM product ORDER BY name ASC", con)

    con.Open()

    Dim dt As New DataTable
    dt.Load(cmd.ExecuteReader())

    ComboBox1.DataSource = dt
    ComboBox1.DisplayMember = "value"
    ComboBox1.ValueMember = "id"
End Using

您现在可以使用以下代码获取id

ComboBox1.SelectedValue.ToString()

你可以用这段代码获取文本:

ComboBox1.Text

答案 1 :(得分:0)

好的,我现在用它并且有效

Dim connetionString As String = Nothing
    Dim connection As MySqlConnection
    Dim command As MySqlCommand
    Dim adapter As New MySqlDataAdapter()
    Dim ds As New DataSet()
    Dim i As Integer = 0
    Dim sql As String = Nothing
    'connetionString = "Data Source=ServerName;Initial Catalog=databasename;User ID=userid;Password=yourpassword"
    'sql = "select id,name from product"
    sql = "SELECT id, CONCAT(name,' | ',id_maker,' | ',id_types) AS value FROM product ORDER BY name ASC"
    'connection = New MySqlConnection(connetionString)
    connection = New MySqlConnection(ConfigurationManager.ConnectionStrings("xCollectibles.My.MySettings.xcollectiblesConnectionString").ToString)
    Try
        connection.Open()
        command = New MySqlCommand(sql, connection)
        adapter.SelectCommand = command
        adapter.Fill(ds)
        adapter.Dispose()
        command.Dispose()
        connection.Close()
        ComboBox1.DataSource = ds.Tables(0)
        ComboBox1.ValueMember = "id"
        ComboBox1.DisplayMember = "value"



    Catch ex As Exception
        MessageBox.Show("Can not open connection ! ")
    End Try

谢谢你..