我試圖將下拉串列中的值傳遞給sql query WHERE子句,但它失敗了,沒有回傳任何值,但當我在WHERE中直接給出值時,它作業正常,唯一的問題是addwithvalue命令中沒有傳遞值。當我運行這個命令時,它顯示在第0行的位置上沒有任何值 'string champ = dt.Rows[0]["mc"].ToString(); ' 請檢查和幫助,
。 string query = "SELECT mc, tower, image from datatable WHERE month= '@month' AND mc IS NOT NULL AND image IS NOT NULL" ;
SqlCommand cmd = new SqlCommand(query, con)。
cmd.Parameters.AddWithValue("@month", ChampMonth.SelectedValue)。
SqlDataAdapter sda = new SqlDataAdapter(cmd)。
cmd.ExecuteScalar()。
DataTable dt = new DataTable()。
sda.Fill(dt)。
string champ = dt.Rows[0]["mc"/span>].ToString();
string tower = dt.Rows[0] ["tower"].ToString();
string img = dt.Rows[0] ["image"].ToString();
Label1.Text = champ;
Label2.Text = tower;
img = Server.MapPath(img);
Image1.ImageUrl = img;
}
uj5u.com熱心網友回復:
你的代碼可以看起來像這樣:
string query = "SELECT mc, tower, image from datatable WHERE month = @month" /span>
"and mc IS NOT NULL AND image IS NOT NULL"。
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Connection.Open()。
cmd.Parameters.Add("@month", SqlDbType.NVarChar).Value = ChampMonth.SelectedValue;
DataTable dt = new DataTable() 。
dt.Load(cmd.ExecuteReader())。
if (dt.Rows.Count > 0) {
Label1.Text = dt.Rows[0]["mc"].ToString()。
Label2.Text = dt.Rows[0]["塔"].ToString();
string img = Server.MapPath(dt.Rows[0]["image"].ToString())。
Image1.ImageUrl = img;
}
}
幾件事:
sql命令object具有a連接object - 不需要創建一個。
sql命令object有a讀者內置 - 不需要創建一個
sql命令object有a命令文本。
如果你要在代碼中更新你的資料表物件,你只需要一個資料配接器。
而且你沒有顯示你是如何/何時創建你的連接物件的。
您應該發布驅動下拉串列(組合框)的標記,因為不清楚它是回傳 1-12 還是實際文本 - 這部分可能仍然是錯誤的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317236.html
標籤:
上一篇:使用X509證書的.NETHttpClient/RestSharp在.NET5升級后拋出"無法建立SSL連接,見內部例外"。
