Kir*_*lgi 2 c# sql datatable ado.net
我的数据表工资列是string列,用户以字符串格式给出输入值,例如userInput="1000". 但工资列中存储的数据如下图所示。如何将用户输入与数据表中存储的数据进行比较?
我当前的代码是
DataRows[] rows = dt.Select("Salary='"+userInput+"'");
Run Code Online (Sandbox Code Playgroud)
为了避免格式问题,您应该更好地比较数值。DataTable选择过滤器支持Convert功能:
var dt = new DataTable();
dt.Columns.Add("Salary", typeof(string));
// test values
dt.Rows.Add("0.10000");
dt.Rows.Add(".1");
dt.Rows.Add("-.1");
dt.Rows.Add("1.1");
decimal salary;
string userInput = "0.10";
if (decimal.TryParse(userInput, out salary))
{
DataRow[] matchedRows = dt.Select("Convert(Salary, 'System.Decimal') = " + salary.ToString());
foreach(var r in matchedRows)
Console.WriteLine(r["Salary"]);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
.1
0.10000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14651 次 |
| 最近记录: |