所以我有一个基本表单,用户可以在其中添加记录并对其进行编辑。一个字段是下拉列表,我从数据库中获取项目。
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类型的工作,但我相信它只是替换下拉列表中的文本,因为它复制文本两次。如果有人能指出我正确的方向,我会非常感谢!作为旁注,所有其他字段(文本框和标签)都可以完美地插入和编辑。我很抱歉,如果这令人困惑,我正在尝试减少代码但是需要更多代码然后我会发布它!感谢您的阅读!!