我希望将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 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]);
}
}
答案 0 :(得分:4)
初始化通用列表字符串对象。
List<string> listOfColumns = new List<string>();
使用值填充列表字符串。
for (int i = 0; i <= rdr.Count; i++)
{
string value = rdr[i];
if(value == "1")
{
listOfColumns.Add(value);
}
}
现在您要将列表字符串绑定到 ComboBox 。
BindingSource bs = new BindingSource();
bs.DataSource = listOfColumns;
comboBox1.DataSource = bs;
更新:以下 DataBind()方法适用于 WebForms 。您不需要在 WinForms 中调用它。上面的代码应该有效:
comboBox1.DataBind();
希望这会对你有所帮助。
答案 1 :(得分:0)
除了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);
实际上,如果您不需要listOfColumns
其他任何内容,您可以这样做:
for (int i = 0; i <= rdr.Count; i++)
{
string value = rdr[i];
if(value == "1")
{
comboBox1.Items.Add(value);
}
}