簡體   English   中英

如何將特定數據從數據庫顯示到文本框中?

[英]How to display a specific data from a database into textbox?

public DataTable DisplayHolidays(int empid)
{
    DataTable dt = new DataTable();

    SqlCommand cmd = new SqlCommand("ComputeHoliday", myCon);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = empid;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    SqlDataReader rd = cmd.ExecuteReader();

    while (rd.Read())
    {
        temp2 = rd[0].ToString();
    }
    return dt;
}

這是我的代碼,我對此部分有疑問/錯誤。 此類代碼不在類加載中。 它無法在文本框中顯示數據。 我正在使用temp2將數據存儲在選定的行中,但仍無法正常工作。

我假設您在cmd.ExecuteReader()cmd.ExecuteReader()異常。

請注意,必須先打開連接,然后才能在cmd.ExecuteReader()使用命令。 DataAdapter.Fill不需要打開的連接,dataadapter會隱式打開/關閉它。

MSDN

與SELECT語句關聯的連接對象必須有效,但是不必打開。 如果在調用Fill之前關閉了連接,則將其打開以檢索數據,然后關閉。 如果在調用Fill之前連接已打開,則它將保持打開狀態。


為什么要使用DataAdapter.Fill(DataTable)以及Command.ExecuteReader 您只需要一種獲取數據的方法。 如果您已經填寫表格:

If(dt.Rows.Count > 0)
{
    temp2 = dt.Rows[0].Field<string>(0);
}

如果您不使用DataAdapterDataTable而僅使用閱讀器:

using(SqlDataReader rd = cmd.ExecuteReader())
{
    if(rd.HasRows)
    {
        rd.Read();
        temp2 = rd.GetString(0);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM