如何解决使用选择语句c#
我对如何在C#中使用DataTable.Select
语句有疑问。
我正在开发一个将DataTables
用作DataSources
的程序,现在我正在研究要使用Select()
方法的搜索语句。
之所以这样,是因为我想让用户能够在程序运行时构建具有多个搜索选项的搜索查询。
通常,一切正常,但是如果我想搜索一个Decimal
或Double
数字,则会出现搜索错误(并且我会检查该值是否存在)。
这是我代码的示例代码。
string Query = "";
string[][] columnname = ;this the 2d array where my table names are stored for building a query.
Double/Decimal Value = 10,15; current value where searching for as example.
Query = ColumnName[0][1] + " = " + Value;
DGV.DataSource = DT.Select(Query).CopyToDataTable();
Error Code//
System.Data.SyntaxErrorException: De expressie bevat een syntaxisfout.
bij System.Data.ExpressionParser.Parse()
bij System.Data.DataExpression..ctor(DataTable table,String expression,Type type)
bij System.Data.DataTable.Select(String filterExpression)
bij HPIT_ProgrammingTool.Classes.FillinFormHeaderAndSearch.BuildRunQeury() in
解决方法
问题是使用当前的区域性将您的十进制/双精度值转换为字符串,该区域性使用,作为小数点分隔符-but DataTable expressions only support . which is culture-invariant。
要解决此问题,请先使用不变区域性将十进制和双精度值转换为字符串:
string Query = "";
string[][] ColumnName = ...;
Double/Decimal Value = 10,15;
var stringValue = Value.ToString(CultureInfo.InvariantCulture);
Query = ColumnName[0][1] + " = " + stringValue;
DGV.DataSource = DT.Select(Query).CopyToDataTable();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。