2012-06-07 4 views
0

Я создаю программу на C#, где я могу добавлять данные из системы и сохранять в базу данных. Я использую SQL Server 2008 R2. У меня есть вид сетки данных, который имеет 2 таблицы, имя и адрес. Я хочу сделать это после ввода необходимой информации, которую я хочу сохранить в моей базе данных после нажатия кнопки сохранения.Как сохранить данные из datagridview в SQL Server 2008 R2

Это скриншот с моей точки зрения сетки данных:

enter image description here

У меня есть код в сохранении данных из текстового поля в моей базе данных. Но я использовал текстовое поле, и я не знаю, как сделать тот же процесс (сохранение данных в моей базе данных), используя представление сетки данных вместо текстового поля. Пожалуйста помоги. Благодарю.

Это код, который я использовал в сохранении данных из текстового в моей базе данных .:

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
try 
{ 
    using (SqlConnection connect = new SqlConnection(connectionString)) 
    { 
     SqlCommand command = new SqlCommand(); 
     command.Connection = connect; 
     command.CommandText = "insert into customer(name, address) values(@name, @address)"; 
     command.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar)); 
     command.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar)); 
     command.Parameters["@name"].Value = name.Text.ToLower(); 
     command.Parameters["@address"].Value = address.Text.ToLower(); 
     connect.Open(); 
    } 
} 
+1

вы создаете соединение и вашу команду, и вы открываете соединение - но вы никогда ** ** выполнение этой команды! –

ответ

2

Вам нужно перебирать коллекцию DataGridView.Rows (я предполагаю, что DataGridView неограничен).

using (SqlConnection connect = new SqlConnection(connectionString)) 
    { 
      using(SqlCommand command = new SqlCommand()) 
     { 
        command.Connection = connect; 
        command.CommandText = "insert into customer(name, address) values(@name, @address)"; 

        command.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar)); 
        command.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar)); 
     connect.Open(); 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      if(!row.IsNewRow) 
      { 
      command.Parameters["@name"].Value = row.Cells[0].Value; 
         command.Parameters["@address"].Value = row.Cells[1].Value; 
      command.ExecuteNonQuery(); 
      } 
     } 
     } 
    } 
+0

Благодарим вас за ответ. Это сработало для меня. Огромное спасибо. – sean

+0

, но это вводит все данные снова и снова. поэтому вы увидите повторяющиеся строки –

0

Является ли ваш GridView привязанным к DataSource?

Если это так, вы можете использовать команду «updatecommand» или «insertcommand», чтобы определить строку запроса SQL, используемую, когда gridview распознает любую из этих операций, и все должно быть позабочено о вас.

Существует достойный пример использования «UpdateCommand» на GridView странице MSDN здесь:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowupdated

Кроме того, обратите внимание на SqlDataSource для метода вставки, чтобы увидеть, какие события ног о которые вы можете связать вещи в:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.insert