[英]how read with datareader from datatable
我有一个返回DataTable的函数
DataTable dt = GetAllObject(ogj_id);
现在我要填写一个MultiCheckCombo,下面是我获得此MultiCheckCombo的链接
上面的链接中如何填充此MultiCheckCombo的示例仅适用于dataReader
OdbcConnection con = "get YOUR connection string";
con.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = con;
cmd.CommandText = "select text,id from ...........";
OdbcDataReader dr = cmd.ExecuteReader();
MultiCheckCombo1.ClearAll();
dr.Read();
MultiCheckCombo1.AddItems(dr, "text", "id");
查询 -现在我的问题听起来像是:如何在dataReader
转换DataTable
来填充此MultiCheckCombo
吗?
查找其他控件。 那个被硬编码为使用OdbcDataReader
。 您不使用DataReader
从DataTable
读取数据,而是通过DataRows
进行迭代。
解决方法是,您可以使AddItems重载以接受DataTable:
public void AddItems(DataTable dt, string textField, string valueField)
{
ClearAll();
int i = 0;
foreach (DataRow dr in dt.Rows)
{
chkList.Items.Add(dr[textField].ToString());
chkList.Items[i].Value = dr[valueField].ToString();
i++;
}
}
您不能将数据读取器转换为数据表。 您必须遍历表的内容并手动构建每个项目。 我不熟悉此特定控件,但是如果它遵循常规约定,则可能看起来应该像这样:
foreach(DataRow row in dt.Rows)
{
MultiCheckCombo1.Items.Add(new ListItem(dt["text"], dt["id"]));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.