C# 将数据从列表发送到组合框
我希望将数据从listOfColumns写入组合框,这是我的代码:C# 将数据从列表发送到组合框,c#,combobox,C#,Combobox,我希望将数据从listOfColumns写入组合框,这是我的代码: connectionString = "Server=localhost;User Id=root; Password=1234; Database=db2; Pooling=false;CharSet=utf8;"; connection = new MySqlConnection(connectionString); connection.Open(); string sql = "SELECT * FROM data w
connectionString = "Server=localhost;User Id=root; Password=1234; Database=db2; Pooling=false;CharSet=utf8;";
connection = new MySqlConnection(connectionString);
connection.Open();
string sql = "SELECT * FROM data where id = '"+textBox1.Text.Trim()+"'";
MySqlCommand cmd = new MySqlCommand(sql, connection);
MySqlDataReader rdr = cmd.ExecuteReader();
DataTable schema = rdr.GetSchemaTable();
Dictionary<int, String> columnNames = new Dictionary<int, string>();
int index = 0;
foreach (DataRow row in schema.Rows)
{
columnNames.Add(index, row[schema.Columns["ColumnName"]].ToString());
index++;
}
List<String> listOfColumns = new List<string>();
for (int i = 0; i < rdr.FieldCount; i++)
{
var val = rdr[i];
if ("1" == val)
{
/* if the value of the column is 1,
add the column name from the dictionary */
listOfColumns.Add(columnNames[i]);
}
}
初始化通用列表字符串对象
List<string> listOfColumns = new List<string>();
更新:以下数据绑定方法适用于WebForms。您不需要在WinForms中调用它。上述代码应适用于:
comboBox1.DataBind();
希望这将对您有所帮助。除了Jowie演示的数据绑定方式外,您还可以手动执行此操作:
for (int i = 0; i <= rdr.Count; i++)
{
string value = rdr[i];
if(value == "1")
{
listOfColumns.Add(value);
}
}
foreach (string listItem in listOfColumns)
comboBox1.Items.Add(listItem);
DataSource=listocolumns;类似这样的。我假设您已经有一个combobox,并且您正在尝试将值设置为combobox。?combobox?那为什么你有列名[i]?好的,我有所有的代码。你能理解吗?我从comboBox1.DataBind得到一些错误;错误1“System.Windows.Forms.ComboBox”不包含“DataBind”的定义,并且找不到接受“System.Windows.Forms.ComboBox”类型的第一个参数的扩展方法“DataBind”。是否缺少using指令或程序集引用?尝试不使用数据绑定行-我认为这是WPF,而不是Windows窗体。@user3802389 Yeah@ThorstenDittmar是正确的。数据绑定是用于WebForms的。因此,如果您正在开发Winforms,请删除该行。它应该可以工作。@user3802389如果我的解决方案解决了您的问题,请接受它作为答案。
comboBox1.DataBind();
for (int i = 0; i <= rdr.Count; i++)
{
string value = rdr[i];
if(value == "1")
{
listOfColumns.Add(value);
}
}
foreach (string listItem in listOfColumns)
comboBox1.Items.Add(listItem);
for (int i = 0; i <= rdr.Count; i++)
{
string value = rdr[i];
if(value == "1")
{
comboBox1.Items.Add(value);
}
}