从一个数据表中选择和复制数据到另一个数据库时出错?

时间:2014-01-24 22:50:42

标签: c# datatable .net-3.5

我尝试从一个数据表中选择一些数据,并根据a将其保存到另一个数据表 条件。 我收到错误 - System.Data.SyntaxErrorException:无法解释令牌'!'在第6位。

什么是正确的语法,在哪里可以看到执行查询的C#语句列表 像SQL服务器。

        DataTable parent = some datatable from SQL server;
        DataTable child = new DataTable();
        child = parent.Select("cols != -1").CopyToDataTable();

1 个答案:

答案 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)