2012-02-18 2 views
2

Я создал datagridview, привязанную к datatable. Как я могу добавить все содержимое в моем datatable в базу данных с помощью кнопки 1 buttonclick? например: я вставил 5 значений в мой datatable. Как бы я сразу вставлял все 5 данных?Вставка значений datagridview в базу данных

+1

Я еще ничего не пробовал сэр. Потому что я знаю только, как добавлять данные по одному. –

+1

Что означает «Как бы я вставлял все 5 данных, которые можно было бы отображать сразу»? У вас есть 5 таблиц данных или 5 записей в одном DataTable? Кстати, если вы знаете, как вставить одну запись, вы также знаете, как поместить все строки DataTable по одному. Вы должны использовать DataAdapter для обновления всего DataTable: http://msdn.microsoft.com/en-us/library/system.data.common.dataadapter.update%28v=vs.100%29.aspx –

+0

@Tim Schmelter 5 или Multiple в допустимом. Сэр. Я знаю только вставку в команду. Могу ли я иметь несколько команд вставки одним нажатием кнопки? И я не знаю, как получить доступ к данным каждой строки данных. –

ответ

1

вы можете сделать что-то вроде этого:

string ConnString= "Data Source=.\SQLEXPRESS;Initial Catalog=test;Integrated Security=True;Pooling=False"; 

private void button1_Click(object sender, EventArgs e) 
{ 
    for(int i=0; i< dataGridView1.Rows.Count;i++) 
    { 
     string StrQuery= @"INSERT INTO tableName VALUES (" + dataGridView1.Rows[i].Cells["ColumnName"].Value +", " + dataGridView1.Rows[i].Cells["ColumnName"].Value +");"; 

     try 
     { 
     using (SqlConnection conn = new SqlConnection(ConnString)) 
     { 
      using (SqlCommand comm = new SqlCommand(StrQuery, conn)) 
      { 
       conn.Open(); 
       comm.ExecuteNonQuery(); 
      } 
     } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 
} 

ConnectionString вы можете получить его из свойства вас DB, также положить "" в команду, когда вы хотите, чтобы вставить значение, которое не является числом. ..

+0

Я предполагаю, что этот код будет работать независимо от того, привязан ли DGV к таблице базы данных или нет? Если бы я хотел усечь таблицу перед вставкой элементов, я мог бы просто «ExecuteNonQuery» использовать другую строку '' TRUNCATE TABLE .... "'? – whytheq

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