Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Запрос на удаление


Автор: ProgerIv 19.8.2008, 08:02
Привет всем.
Код

//...............
if (dataTable != null)
{
                OleDbConnection con = new OleDbConnection(connectionString);
                try
                {
                    OleDbCommand com = new OleDbCommand("DELETE * FROM Data WHERE ID_Parent_ = " + Convert.ToString(Convert.ToString(Id)), con);
                    con.Open();
                    com.ExecuteNonQuery();
                    con.Close();                    
                }
                catch (Exception ex)
                {
                    con.Close();
                    MessageBox.Show(ex.ToString());
                }
}
//................


Запрос работает, но почему-то результат его работы виден только при повторном запуске программы, почему изменения не видны в этой же сессии работы программы, когда был вполнен запрос?

Автор: Partizan 19.8.2008, 09:47
ProgerIv, потому, что DataTable не обновляется.

Автор: ProgerIv 19.8.2008, 10:18
Partizan, как обновить DataTable?
Я пробовал AcceptChanges(), но все равно нет обновления.

Автор: ProgerIv 19.8.2008, 12:34
Попробую получше ввести в курс дела.

Делаю так
Код

private OleDbDataAdapter dataAdapter;
private DataSet dataSet;
private DataTable dataTable;
//...................
string commandstring = "select * from Data";
dataAdapter = new OleDbDataAdapter(commandstring, connectionString);

dataSet = new DataSet();
dataSet.CaseSensitive = true;
dataAdapter.Fill(dataSet, "Data");
//....................
dataTable = dataSet.Tables[0];


Как сделать запрос на удаление группы записей из одной таблицы, так, чтобы и в dataTable были сделаны соответствующие изменения?
Я делал так, но не работает (удалять, удаляет, но эти изменения не видны из этой программы до ее перезапуска):
Код

if (dataTable != null)
{
                OleDbConnection con = new OleDbConnection(connectionString);
                try
                {
                    OleDbCommand com = new OleDbCommand("DELETE * FROM Data WHERE ID_Parent_ = " + Convert.ToString(Convert.ToString(Id)), con);
                    con.Open();
                    com.ExecuteNonQuery();
                    con.Close();                    
                }
                catch (Exception ex)
                {
                    con.Close();
                    MessageBox.Show(ex.ToString());
                }
}


Хочу узнать Ваши мнения, как сделать так чтобы работало?

Автор: ProgerIv 19.8.2008, 13:06
Partizan, подсказал мне простой путь через Row.Delete.
Тему закрываю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)