1

所以下面的代码不会进入循环来填充我的列表框。我的列表框显示“全选”并测试输出“进入循环”。什么会导致尝试不失败但循环也不执行?

conn.Open();
OracleCommand executeQuery = new OracleCommand(sql, conn);
executeQuery.CommandType = CommandType.Text;

OracleDataReader dr = executeQuery.ExecuteReader();

lstInstructors.Items.Clear();
lstInstructors.Items.Add(new ListItem("Select All", "%"));

string test = "entering loop";

while (dr.Read())
{
    test = "start reading items";
    lstInstructors.Items.Add(new ListItem(dr.GetValue(0).ToString()));
    test += dr.GetValue(0).ToString();
}
4

1 回答 1

0

“sql”的值在哪里设置?

完成填充列表框的另一种方法是填充数据表,然后将其绑定到列表框。

OracleDataAdapter da = new OracleDataAdapter();
DataTable dt = new DataTable();
var sql = "some sql string";
OracleCommand executeQuery = new OracleCommand(sql, conn);
using (da = new OracleDataAdapter(executeQuery))
{
    da.Fill(dt);
}
lstInstructors.DataSource = dt;
lstInstructors.DataTextField = "Field Name from sql";
lstInstructors.DataValueField = "Field Value from sql";
lstInstructors.DataBind();
lstInstructors.Items.Insert(0, new ListItem("Choose", "Choose"));
lstInstructors.SelectedValue = "Choose";

一定要包括使用 System.Data

我已经从 SqlDataAdapter 改编了这个,所以可能存在一些语法差异。

于 2012-08-22T14:53:24.290 回答