Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 下拉列表将无法正确读取数据库值_C#_Asp.net_Sql Server 2008 - Fatal编程技术网

C# 下拉列表将无法正确读取数据库值

C# 下拉列表将无法正确读取数据库值,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,因此,我有一个基本表单,用户可以在其中添加记录并编辑它们。其中一个字段是下拉列表,我从数据库中获取项目 private void getProducts() { DataTable Products = new DataTable(); SqlConnection mySqlConnection = new SqlConnection(strings.settings.connectionString); SqlCommand mySqlCommand = mySql

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

  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有点效果,但是我相信它只是替换了下拉列表中的文本,因为它重复了文本两次。如果有人能给我指出正确的方向,我会非常感谢!作为旁注,所有其他字段(文本框和标签)都可以完美地插入和编辑。我很抱歉,如果这是混淆,我试图减少代码,但更多是需要的,然后我会张贴它!谢谢你的阅读

Offtopic:尝试在SQLDataReader中使用一段时间,我只是没有包含代码吗