簡體   English   中英

c# 中的 Sql 查詢

[英]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.

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