如何重寫此代碼以僅顯示哪些球員的BattingAverage(小數)值在兩個文本框的輸入之間的行?此外MinBatting(文本框)應該被設置爲默認值0.000和MaxBetting(文本框)爲1.000。如何重寫此SQL查詢以在小數之間進行選擇?
至於現在我只能搜索一個數字,而所有BattingAverage的玩家都會出現這個數字。
這裏是我的代碼:
private void btnSearch_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
// sql connection string
conn.ConnectionString = "Integrated
Security=true;server=LUSQL01;database=Baseball";
// sql command
string str = "SELECT * FROM [BASEBALL].[dbo].[Players] where
(BattingAverage LIKE Concat('%',@search,'%'))";
SqlCommand cmd = new SqlCommand(str, conn);
cmd.Parameters.Add("@search", SqlDbType.NVarChar).Value =
txbSearch.Text;
conn.Open();
cmd.ExecuteNonQuery();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
DataTable ds = new DataTable();
adapter.Fill(ds);
playersDataGridView.DataSource = ds;
conn.Close();
}
SELECT * FROM BaseBall.dbo.Players WHERE BattingAverage BETWEEN(minVal,MaxVal) – Namphibian
嘗試使用LINQ代替編寫SQL,您將看到語法錯誤,而不是依賴運行時SQL。 – Joagwa
@Joagwa,好主意,所以你有什麼想法我的代碼看起來像LINQ? –