我試圖從我的數據庫中獲得一個值,但它一直返回值爲0,我找不出原因。我一直從數據庫中檢索整個項目的數據,而這只是在這裏工作。在數據庫中的值都不是= 0整數返回值爲0,當它不應該是。取自數據庫
INT rentalPrice是一個正在返回0`
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["id"] == null)
{
Response.Redirect("DisplayCars.aspx");
}
else
{
id = Convert.ToInt32(Request.QueryString["id"].ToString());
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from cars where id ='" + id + "'";
cmd.ExecuteNonQuery();
lblCarID.Text = id.ToString();
DataTable dt2 = new DataTable();
SqlDataAdapter da2 = new SqlDataAdapter(cmd);
foreach (DataRow dr2 in dt2.Rows)
{
rentalPrice = Convert.ToInt32(dr2["car_rental_price"]);
}
lblRentalPrice.Text = rentalPrice.ToString();
con.Close();
}
您正在使用'ExecuteNonQuery'。但是你試圖執行一個查詢。看看這怎麼沒有意義?你有沒有看過[ExecuteNonQuery](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v = vs.110).aspx)返回的文檔? – mason
**警告:** fyi您正在詢問sql注入!!! –
方面說明:爲什麼這行'Convert.ToInt32(Request.QueryString [「id」] .toString());'?您將'id'值作爲字符串添加到查詢中,但將其作爲字符串讀取,將其轉換爲int,然後將其作爲字符串添加並作爲varchar添加。真的,你應該使用參數化的sql,並且數據庫中的id應該是int類型的。 – Igor