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
}

ただし、返されたステートメントの列のインデックスに基づいているため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 に答える