[英]Sql query in c#
我正在 C# 2010 Express 中編程。
我的程序中有一個 SQL 數據庫,其中一個名為HightAndWeightTable
的表有四列。 我想 select 根據用戶在上下框中輸入域的高度,從第四列稱為Risk
的值。
因此,我在程序中的 SQL 查詢是:
SELECT Risk
FROM HightAndWeightTable
WHERE Hight LIKE '%" + domainUpDown1.Text + "%'"
...但這沒有用。
另外,我們如何編寫一個具有范圍的 SQL 查詢,例如,如果我想說一個值在一個值范圍之間?
首先,您遇到的一個問題是SQL Injection 。 這已經寫了很多很多次了,所以我不會在這里過多介紹 go。
您想更改 SQL 查詢以使用參數,如下所示:
using (SqlConnection conn = new SqlConnection("Server=(local);DataBase=Northwind;Integrated Security=SSPI")
{
SqlCommand cmd = new SqlCommand("SELECT Risk From HightAndWeightTable WHERE Hight LIKE '%" + @height + "%'", conn);
SqlParameter param = new SqlParameter();
param.ParameterName = "@height";
param.Value = domainUpDown1.Text;
cmd.Parameters.Add(param);
reader = cmd.ExecuteReader();
while(reader.Read())
{
//do something here:
string risk = reader["Risk"];
}
}
另外,您在查詢中是否正確拼寫了所有內容? 看起來你拼錯了身高。
至於之間:
SELECT thing t FROM table where t.value BETWEEN lowerLimit AND upperLimit
首先,在比較我假設的數值時,您不想使用 LIKE 。 你可以只做 = 或 > 或任何適合你比較的東西。
其次,請告訴我您正在對該用戶輸入進行驗證,或者您並沒有真正計划使用字符串連接來構建您的 SQL 字符串(使用參數!)
第三,范圍可以使用BETWEEN
運算符來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.