Мне нужно удалить из все записи из таблицы.
Попытка удалить хотя бы один рядок вызывает следующую ощибку:
"Dynamic SQL generation for the DeleteCommand is not supported against
a SelectCommand that does not return any key column information."
Вот код, который я использую:
// (1) Создать соединение с источником данных.
SqlConnection Connection = new SqlConnection("server=(local); database=" + DataBaseName + "; Trusted_Connection=yes");
// (2) Создать объект адаптера данных.
SqlDataAdapter Adapter = new SqlDataAdapter();
// (3) Создать набор данных.
DataSet DatSet = new DataSet();
DataRow Row;
SqlCommandBuilder CommandBuilder = new SqlCommandBuilder(Adapter);
Adapter.SelectCommand = new SqlCommand("SELECT * FROM data", Connection);
Adapter.Fill(DatSet, "data");
Row = DatSet.Tables["data"].Rows[0];
Row.Delete();
Adapter.Update(DatSet.Tables["data"]);
Таблица "data" имеет три поля, не имеет ключевых полей.
Подскажите пожалуйста где ошибка и зачем нужно использовать свойство DeleteCommand класса SqlDataAdapter?
Спасибо.
Мы были здесь. Но пора идти дальше. (с) Дуглас Коупленд, Рабы "Микрософт"
Здравствуйте, Gudzik, Вы писали:
G>Мне нужно удалить из все записи из таблицы.
Чтобы удалить все записи из таблицы читать их на клиенте не обязательно. SqlDataAdapter, соответственно, ни к чему. Достаточно SqlConnection и SqlCommand.
Что-то вроде:
SqlConnection Connection = new SqlConnection("server=(local); database=" + DataBaseName + "; Trusted_Connection=yes");
SqlCommand Cmd= new SqlCommand(commandText,"delete from data");
Cmd.CommandType = CommandType.Text;
int Recs = Cmd.ExecuteNonQuery();