2013-03-20 2 views
0

Я думаю, мне нужно уточнить, как работает (My) SqlDataAdapter. У меня есть DGV, который я использую для отображения одного столбца из таблицы MySQL; однако, когда мне нужно отредактировать запись, мне нужно большинство других полей, и я делаю это в другой winform. Поэтому я думаю, мне нужен совет по некоторым рекомендациям:DataGridView и идентификатор записи C#

Вопрос 1: При привязке к источнику данных: нужно ли выбрать ВСЕ поля, которые я хочу изменить в форме?

string query = "SELECT * FROM cusdata"; 
cusAdapter = new MySqlDataAdapter(query,pppDB.sqlConn);   
cusAdapter.Fill(mainSet,"cusdata"); 
dgv_cusData.DataSource = mainSet.Tables["cusdata"] 

Вопрос 2: Я вижу много информации по всей сети о выборе только те поля, которые нужно отобразить в DGV, но если я изменить эти данные, как это адаптер точно знать, что запись обновляется back-end ???

Я думаю, что я немного смущен по поводу разных подходов, и мне нужно руководство. Мне нужен datagridview, где я могу отобразить один столбец (имя клиента). Я хочу иметь возможность редактировать запись клиента в другой форме и обновлять DVG с помощью новой информации после успешного завершения действия базы данных.

Я дал лучшую часть выходного дня сегодня, чтобы найти статью или блог или что-то, что демонстрирует ТОЧНО, что. Парадигма списка-формы. Может ли кто-нибудь указать мне в правильном направлении? Большое спасибо сообществу.

ответ

1

опытом вы не должны выбрать все поля, а выбирать только те поля, которые нужно

Select CustId, CustName, CustAddress, CustPhone from cusdata 

это будет влиять на производительность.

при редактировании данных вы можете использовать код ниже:

string connectionString = "[Put your connection string here]"; 
using (SqlConnection conn = new SqlConnection(connectionString)) 
    { 
     conn.Open(); 
     using (SqlCommand cmd = new SqlCommand("UPDATE cusdata SET [email protected], [email protected] WHERE [email protected]", conn)) 
     { 
      cmd.Parameters.AddWithValue("@CustId", 1); 
      cmd.Parameters.AddWithValue("@CustName", "Name Input"); 
      cmd.Parameters.AddWithValue("@CustAddress", "Address input"); 

      int rows = cmd.ExecuteNonQuery(); 

      //rows number of record got updated 
     } 
    } 

эта часть кода позволяет указать поля и данные, которые вы хотите обновить в таблице

cmd.Parameters.AddWithValue("@CustId", 1); 
cmd.Parameters.AddWithValue("@CustName", "Name Input"); 
cmd.Parameters.AddWithValue("@CustAddress", "Address input"); 
+0

хороший статья для основной crud в C# http://lamahashim.blogspot.com/2010/04/c-read-insert-update-delete-from-sql.html – Jhigs

+0

Спасибо за ответ. Я действительно понимаю основы CRUD и как отправить параметризованные запросы в исходный код; однако я хочу обработать все, привязав свои данные к datagridview с использованием данных и выполняя обновления для внешнего сервера с помощью SqlDataAdapter. Мне нужны реальные статьи/примеры о том, как это делается другими. – user1532602

Смежные вопросы