C# 嵌入asp.net和SQL Server读取数据并更改文本框字段

C# 嵌入asp.net和SQL Server读取数据并更改文本框字段,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我正在创建一个sql项目。我使用了一个SqlDatareader和文本框,但是当我运行它时,我得到了一个错误 无效操作例外 我的代码是这个,谢谢你的帮助 protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) { if (DropDownList1.SelectedIndex == 0) { string CS = C

我正在创建一个sql项目。我使用了一个
SqlDatareader
和文本框,但是当我运行它时,我得到了一个错误

无效操作例外

我的代码是这个,谢谢你的帮助

    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownList1.SelectedIndex == 0)
        {
                string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                using (SqlConnection con = new SqlConnection(CS))
                {
                    con.Open();
                    SqlCommand cmd = new SqlCommand
                        ("USE [PRODUCTS] SELECT QUALITIES FROM dbo.COMPUTERS WHERE ID = 0", con);
                    SqlDataReader reader;
                    reader = cmd.ExecuteReader();
                    TextBox1.Text = reader["QUALITIES"].ToString();
                }
            }
        }

您没有考虑数据读取器没有行的情况

试试这个:

while(reader.Read())
{
    TextBox1.Text = reader["QUALITIES"].ToString();
}

还要注意,数据库中的“Qualities”字段可能为空。你也会想要保护自己不受此影响

您应该执行两项错误检查任务,以更好地了解导致问题的原因。使用try/catch更仔细地分析异常。同时添加Finally块以关闭读卡器。并检查读卡器是否有行:

reader = cmd.ExecuteReader();

try
{
    if (reader.HasRows)
    {
        reader.Read();

        if (!reader.IsDBNull(0))
            TextBox1.Text = reader.GetString(0);
     }
}
catch (Exception ex)
{
    // Do something
}
finally
{
    reader.Close();
}

是的,你从哪里得到的错误?什么是上下文?这是一个运行时错误,当我从下拉列表中选择0索引时,asp.net服务器错误显示ups:129:SqlDataReader;130:reader=cmd.ExecuteReader()//下面是错误131:TextBox1.Text=reader[“qualitys”].ToString();132: } 133: }