Datatable.Load не работает с SqlCeReader - PullRequest
1 голос
/ 08 марта 2012

У меня есть этот метод:

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;
}

Когда я выполняю запрос select * from information_schema.Tables для соединения типа SQLConnection, все это работает.Однако, когда я пытаюсь запустить его для соединения типа 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 Ответ

1 голос
/ 08 марта 2012

Конечно, странная проблема, но вот альтернатива:

Считайте данные в DataSet и установите EnforceConstraints в false.Затем вы можете вернуть DataSet.Tables[0]

...