我正在嘗試將下拉串列中的值傳遞給 sql 查詢 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"].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 "
"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]["tower"].ToString();
string img = Server.MapPath(dt.Rows[0]["image"].ToString());
Image1.ImageUrl = img;
}
}
一些東西:
The sql command object has a connection object - no need to create one
The sql command object has a reader built in - no need to create one
The sql command object has a command text.
如果您要在代碼中更新資料表物件,您只需要一個資料配接器。
而且您沒有顯示創建連接物件的方式/時間。
您應該發布驅動下拉串列(組合框)的標記,因為不清楚它是回傳 1-12 還是實際文本 - 那部分可能仍然是錯誤的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/417833.html
標籤:
上一篇:如何生成串列框演算法?
