下拉列表不会正确读取数据库值

时间:2013-04-24 20:57:51

标签: c# asp.net sql-server-2008

所以我有一个基本表单,用户可以在其中添加记录并对其进行编辑。一个字段是下拉列表,我从数据库中获取项目。

  private void getProducts()
{
    DataTable Products = new DataTable();
    SqlConnection mySqlConnection = new SqlConnection(strings.settings.connectionString);
    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();


    try
    {
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT DESCRIPTION, PRODUCT_ID FROM dbo.PRODUCT_TABLE", mySqlConnection);
        adapter.Fill(Products);

        ddlProduct.DataSource = Products;
        ddlProduct.DataTextField = "DESCRIPTION";
        ddlProduct.DataValueField = "PRODUCT_ID";
        ddlProduct.DataBind();
    }
    catch (Exception ex)
    {
        lblError.Text = ex.Message;
    }
    finally
    {
    }
 }

此代码在Page_Load事件上运行,并且包含if(!IsPostBack)。

我使用

将数据存储在数据库中
   ddlProduct.DataTextField

它存储得很好。

我尝试使用select语句和datareader读取数据库表(与上面的不同)。

 SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(CommandBehavior.SingleRow);
 ddlProduct.DataTextField = mySqlDataReader[5].ToString();

但是,我似乎永远无法正确读取数据。上面这条线从来没有奏效。我尝试了很多解决方案,并尝试阅读以下内容:

 ddlProduct.SelectedItem.Text = mySqlDataReader[5].ToString();
 ddlProduct.SelectedValue.Text = mySqlDataReader[5].ToString();
 ddlProduct.SelectedItem.Value = mySqlDataReader[5].ToString();

SelectedItem.Text类型的工作,但我相信它只是替换下拉列表中的文本,因为它复制文本两次。如果有人能指出我正确的方向,我会非常感谢!作为旁注,所有其他字段(文本框和标签)都可以完美地插入和编辑。我很抱歉,如果这令人困惑,我正在尝试减少代码但是需要更多代码然后我会发布它!感谢您的阅读!!

0 个答案:

没有答案