Как добавить данные вводимые в DataGrid в базу данных MySQL? Добавленных данных нет в базе, и ошибок, почему это происходит тоже нет. Я пытаюсь решить эту проблему уже несколько дней. Использую WPF.
private void dtGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
MySqlConnection conn = DBUtils.GetDBConnection();
string table = "brands";
string sql = "SELECT * FROM "+table;
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(sql, conn);
conn.Open();
MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(myDataAdapter);
myDataAdapter.InsertCommand = myCommandBuilder.GetInsertCommand();
myDataAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
myDataAdapter.DeleteCommand = myCommandBuilder.GetDeleteCommand();
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, table);
myDataAdapter.AcceptChangesDuringUpdate = true;
myDataAdapter.Update(myDataSet, table);
conn.Close();
}
Проблема в том, что вы в коде никак не задействуете DataGrid. Вы создаете пустой DataSet, заполняете его данными из базы, и потом эти же самые данные записываете назад в базу. Правильно нужно делать так:
Допустим, мы хотим сделать DataGrid, привязанную к DataTable. Сразу в конструкторе окна создадим DbDataAdapter и DataTable (нет необходимости это делать при каждом обновлении, так как структура данных и запросы то не меняются), и сохраним их в полях класса окна.
DbDataAdapter adapter;
DataTable dt;
public MainWindow()
{
InitializeComponent();
MySqlConnection conn = DBUtils.GetDBConnection();
string table = "brands";
string sql = "SELECT * FROM "+table;
adapter = new MySqlDataAdapter(sql, conn);
conn.Open();
MySqlCommandBuilder myCommandBuilder = new MySqlCommandBuilder(adapter as MySqlDataAdapter);
adapter.InsertCommand = myCommandBuilder.GetInsertCommand();
adapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
adapter.DeleteCommand = myCommandBuilder.GetDeleteCommand();
dt = new DataTable();
adapter.Fill(dt); //загрузка данных
datagrid.ItemsSource = dt.DefaultView; //привязка к DataGrid
}
Теперь, когда нужно сохранить данные (я не рекомендую сохранять при каждом изменении строки, так как будет слишком много запросов в базу, лучше создать кнопку "Сохранить"), выполним Update на той же DataTable.
private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
adapter.Update(dt);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я получаю DataTable из базы данных, после заполняю им DataGrid:
Всем привет! Делаю запрос через wp_remote_request с заданным тайм аутом, не понимаю как мне обрабатывать ситуацию если в заданный тайм аут ответ не пришел...
Есть смартфоновое приложение, которое загружает с сервера картинкиПоявилась необходимость вносить изменения в адрес запроса, чтобы на смартфон...