2

我在我的数据库中有一个列“Klantnummer”,
我希望该值作为我的标签文本。
我怎么做?

protected string conS = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Databees.mdf;Integrated Security=True;User Instance=True";
protected SqlConnection con;

protected void Page_Load(object sender, EventArgs e)
{
    con = new SqlConnection(conS);
    try
    {
        con.Open();
        string q = "SELECT * FROM tblKLanten;";
        SqlCommand query = new SqlCommand(q, con);
        SqlDataReader dr = query.ExecuteReader();
        Label1.Text = ; //I want here the value of klantnummer
        con.Close();
    }
    catch (Exception ex)
    {
        Label2.Text = "Error";
    }
}
4

2 回答 2

1

您可以使用:

label1.Text = dr["Klantnummes"].ToString();
于 2013-03-28T15:16:59.900 回答
1

好吧,根据提供的信息,回答起来并不容易,但让我们假设您的结构是这样的:

CREATE TABLE tblKLanten (
    ID INT,
    Klantnummer VARCHAR(50)
)

您需要像这样通过读取器的索引获取字段:

Label1.Text = dr.GetString(1);

但是您还需要阅读,因此您需要在设置标签之前发出此语句:

bool success = dr.Read();
if (success)
{
    // set the label in here
}

但请记住,它基于返回语句中列的索引,因此由于您发出 a ,SELECT *因此我无法知道索引是什么。最后,我建议进行更多更改,因此请考虑以下代码:

protected string conS = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Databees.mdf;Integrated Security=True;User Instance=True";
protected SqlConnection con;

protected void Page_Load(object sender, EventArgs e)
{
    con = new SqlConnection(conS);
    try
    {
        con.Open();
        string q = "SELECT * FROM tblKLanten;";
        SqlCommand query = new SqlCommand(q, con);

        using (SqlDataReader dr = query.ExecuteReader())
        {
            bool success = dr.Read();
            if (success)
            {
                Label1.Text = dr.GetString(1);
            }
        }

        con.Close();
    }
    catch (Exception ex)
    {
        Label2.Text = "Error";
    }
}

那里的using声明将确保SqlDataReader妥善处理。

于 2013-03-28T15:18:09.630 回答