繁体   English   中英

如何从数据表读取数据

[英]how read with datareader from datatable

我有一个返回DataTable的函数

DataTable dt = GetAllObject(ogj_id);

现在我要填写一个MultiCheckCombo,下面是我获得此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 您不使用DataReaderDataTable读取数据,而是通过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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM