嘿伙计们我想在vb.net中将项目添加到我的ComboBox。但我需要的数据是在我的数据库中。
我这里有一个SQL Query语句:
"SELECT DISTINCT(Tags) from Legal_Records"
我想要做的是将此SQL查询的结果添加到我的ComboBox。
任何人都可以帮助我,让它变得简单tnx家伙! :)
答案 0 :(得分:1)
你可以让datagridview看起来像一个组合框..
删除行标题和列标题..您可以通过添加“向下箭头”按钮来复制下拉列表操作..在向下箭头按钮上添加一个事件单击..它应该显示datagridview ..如果单击一个单元格datagridview ..你应该复制所选单元格的内容并将其复制到你的文本框中,之后隐藏datagridview ..
它只需要3个控件*,您可以轻松管理您的 datasource(使用datagridview)..
* (1)textbox and (2)arrow button down - to make it look like a combobox.. last is the (3)datagridview
答案 1 :(得分:0)
您可能会从该查询返回多个结果,但以下是如何执行您想要的操作:
如果您还没有连接,则需要某种连接:
Dim conn As SqlConnection = New SqlConnection('connection string) conn.Open()
您完成了命令,现在只需执行以下操作:
Dim command As SqlCommand = New SqlCommand("SELECT DISTINCT(Tags) from Legal_Records", conn)
现在,你需要一个读者,如下:
Dim reader As SqlDataReader = command.ExecuteReader() 'your query will return an array of objects, unless you know there will be only one value to return, if that is the case, you can use command.ExecuteScalar() which will return only the first column of the first row While reader.Read() ComboBox1.Items.Add(reader.GetString(0)) 'You can also do GetInt32, GetDouble, etc. Everytime you call GetString or whatever you chooose, it will move to the next item in the object array `
就是这样,希望有所帮助,不要忘记关闭并处理所有资源。
答案 2 :(得分:0)
这是我的样本
cbsection.Items.Clear()
strsql = "select DISTINCT(section) from sassign where grade like @field1"
sqlcmd = New SqlClient.SqlCommand(strsql, sqlconn)
With sqlcmd
.Parameters.AddWithValue("@field1", cbgrade.Text)
End With
sqldr = sqlcmd.ExecuteReader
While (sqldr.Read())
With cbsection.Items.Add(sqldr("section"))
End With
End While
sqlcmd.Dispose()
sqldr.Close(