如何重写此代码以仅显示哪些球员的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? –