C# 如何重写此SQL查询以在小数之间进行选择?

C# 如何重写此SQL查询以在小数之间进行选择?,c#,sql-server,datatable,C#,Sql Server,Datatable,如何重写此代码以仅显示玩家在两个文本框输入之间具有BattingAverage(decimal)值的行?此外,MinBatting(文本框)应默认设置为0.000,MaxBoting(文本框)应设置为1.000 到目前为止,我只能搜索一个数字,所有具有平均击球数的球员都会出现 这是我的代码: private void btnSearch_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection

如何重写此代码以仅显示玩家在两个文本框输入之间具有BattingAverage(decimal)值的行?此外,MinBatting(文本框)应默认设置为0.000,MaxBoting(文本框)应设置为1.000

到目前为止,我只能搜索一个数字,所有具有平均击球数的球员都会出现

这是我的代码:

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();
}
林克替代方案

var result = from player in db.Players
       where player.BattingAverage > lowestValue && player.BattingAverage < highestValue
       select player;
var result=来自db.Players中的播放器
其中player.BattingAverage>最低值和&player.BattingAverage<最高值
选择玩家;

类似于此。

SELECT*FROM barball.dbo.Players,其中BattingAverage-BETWEEN(minVal,MaxVal)尝试使用LINQ而不是编写SQL,您将看到语法错误,而不是依赖SQL在运行时工作。@Joagwa,好主意,那么你知道我的代码在LINQ上会是什么样子吗?作为答案发布,这样我就可以格式化代码了。我不知道您的数据结构的完整上下文,也不知道您的SQLite db是如何设置的,但是您应该能够适应。Linq中没有LIKE命令,尽管本文指出有一个SqlMethods类可以执行LIKE命令。其中fieldname“如“%value%”通常与文本字段一起使用。注意:没有错误处理,如果文本框或数据中有非浮点数据,则会导致错误。
var result = from player in db.Players
       where player.BattingAverage > lowestValue && player.BattingAverage < highestValue
       select player;