如何使用数据库中的值设置标签的文本?

时间:2013-03-28 15:12:58

标签: c# asp.net database

我的数据库中有一个“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";
    }
}

2 个答案:

答案 0 :(得分:1)

你可以使用:

label1.Text = dr["Klantnummes"].ToString();

答案 1 :(得分: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
}

但请记住,它基于返回语句 中列的 索引,因此,由于您发出了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正确处理。