Datatable.Load不适用于SqlCeReader

时间:2012-03-08 16:14:55

标签: c# datatable connection sql-server-ce datareader

我有这个方法:

public static DataTable ExecuteDataTable(IDbConnection connection, string cmdText)
{
    IDbCommand command = connection.CreateCommand();
    command.CommandText = cmdText;
    command.CommandType = CommandType.Text;
    IDataReader reader = command.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(reader);
    return dt;
}

当我对SQLConnection类型的连接执行查询select * from information_schema.Tables时,一切正常。 但是,当我尝试针对SqlCEConnection类型的连接运行它时,行dt.Load(reader)会引发异常:

System.Data.ConstraintException: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

1 个答案:

答案 0 :(得分:1)

当然是一个奇怪的问题,但这里有另一种选择:

将数据读入DataSet并将EnforceConstraints设置为false。然后,您可以返回DataSet.Tables[0]

相关问题