我尝试从一个数据表中选择一些数据,并根据a将其保存到另一个数据表 条件。 我收到错误 - System.Data.SyntaxErrorException:无法解释令牌'!'在第6位。
什么是正确的语法,在哪里可以看到执行查询的C#语句列表 像SQL服务器。
DataTable parent = some datatable from SQL server;
DataTable child = new DataTable();
child = parent.Select("cols != -1").CopyToDataTable();
答案 0 :(得分:3)
为什么要从sql-server中选择一个首先需要过滤的表?你不能把这个添加到WHERE
- 条款吗?
使用.NET 3.5,您应该能够使用更强大,更易读的Linq-To-DataSet
:
DataTable parent = GetTable();
DataTable child = parent.AsEnumerable()
.Where(row => row.Field<int>("cols") != -1)
.CopyToDataTable();
如果您想使用DataTable.Select
,则必须使用<>
代替!=
。
DataRow[] filtered = parent.Select("cols <> -1");
在这里查看表达式语法:http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=vs.110).aspx
创建比较表达式时,允许使用以下运算符:
<
>
<=
>=
<>
=
IN
LIKE
表达式中还支持以下算术运算符:
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)