2017-01-18 4 views
0

Итак, я знаю, что вы можете заполнять информацию в сетке данных с SQL-сервера. Но есть ли обратный процесс, но для другой таблицы?Сервер C# и SQL с сеткой данных: добавление в отдельную базу данных из вида сетки данных

Например, имея основной список и используя другие таблицы.

Пример: Мастер таблица: (отображаемые на DataGrid1)

| OtherTableName| TestSubj | TestCriteria | 
---------------------------------------------- 
| TableName | ValueSubj | ValueCriteria | 
---------------------------------------------- 
| TableName | ValueSubj | ValueCriteria | 
---------------------------------------------- 

Другой Таблица

| TestSubj | TestCriteria | 
----------------------------- 
| ValueSubj | ValueCriteria | 
----------------------------- 
| ValueSubj | ValueCriteria | 
----------------------------- 

Я хочу, чтобы вытащить совпадающие столбцы из одной строки из Мастер-таблица (DataGridView1) до Прочее Таблица (База данных SQL).

По существу, вы должны щелкнуть строку в DataGridView1, а затем нажать кнопку «Добавить строку в другую таблицу». Что бы добавить вашу команду вставки в базу данных SQL, в этом случае она исключила бы столбец «OtherTableName» и ввела бы «TestSubj» и «TestCriteria» в таблицу «OtherTable».

Возможно ли это? Я попытался найти документацию по этому поводу, но я не могу найти ничего.

ответ

0

Я уверен, что в этом есть гораздо более простой способ. Однако вы можете просто использовать строки из выбранной ячейки ячейки. Пользователь должен выбрать целую строку Вы можете изменить эти параметры в Visual Studio в свойствах datagridview.

private void button1_Click_1(object sender, EventArgs e) 
    { 
     string iOne = dgMasterGridView.SelectedRows[0].Cells[1].Value + string.Empty; 
     string iTwo = dgMasterGridView.SelectedRows[0].Cells[2].Value + string.Empty; 
     string iThree = dgMasterGridView.SelectedRows[0].Cells[3].Value + string.Empty; 
     string iFour = dgMasterGridView.SelectedRows[0].Cells[4].Value + string.Empty; 
     string iFive = dgMasterGridView.SelectedRows[0].Cells[5].Value + string.Empty; 
     string iSix = dgMasterGridView.SelectedRows[0].Cells[6].Value + string.Empty; 
     string iSeven = dgMasterGridView.SelectedRows[0].Cells[7].Value + string.Empty; 
     string iEight = dgMasterGridView.SelectedRows[0].Cells[8].Value + string.Empty; 
     string iNine = dgMasterGridView.SelectedRows[0].Cells[9].Value + string.Empty; 
     string iTen = dgMasterGridView.SelectedRows[0].Cells[10].Value + string.Empty; 
     string iEleven = dgMasterGridView.SelectedRows[0].Cells[11].Value + string.Empty; 
     string iTwelve = dgMasterGridView.SelectedRows[0].Cells[12].Value + string.Empty; 

     try 
     { 
      // Connection to DB 
      SqlConnection con = new SqlConnection(); 
      con.ConnectionString = (@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Database;Integrated Security=True"); 
      //Insert Query 
      string insertquery = "INSERT INTO dbo.[myTable] ([Item1], [Item2], [Item3], [Item4], [Item5], [Item6], [Item7], [Item8], [Item9], [Item10], [Item11], [Item12]) VALUES(@Item1,@Item2,@Item3,@Item4,@Item5,@Item6,@Item7,@Item8,@Item9,@Item10,@Item11,@Item12)"; 

      SqlCommand cmd = new SqlCommand(insertquery, con); 

      //open connection 
      con.Open(); 

      //Parameters 
      cmd.Parameters.AddWithValue("@Item1", iOne); 
      cmd.Parameters.AddWithValue("@Item2", iTwo); 
      cmd.Parameters.AddWithValue("@Item3", iThree); 
      cmd.Parameters.AddWithValue("@Item4", iFour); 
      cmd.Parameters.AddWithValue("@Item5", iFive); 
      cmd.Parameters.AddWithValue("@Item6", iSix); 
      cmd.Parameters.AddWithValue("@Item7", iSeven); 
      cmd.Parameters.AddWithValue("@Item8", iEight); 
      cmd.Parameters.AddWithValue("@Item9", iNine); 
      cmd.Parameters.AddWithValue("@Item10", iTen); 
      cmd.Parameters.AddWithValue("@Item11", iEleven); 
      cmd.Parameters.AddWithValue("@Item12", iTwelve); 

      //execute 
      cmd.ExecuteNonQuery(); 

      //close connection 
      con.Close(); 

      MessageBox.Show("Information has been submitted"); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

Это также пропускает 1-й столбец. Однако, если вы хотите, чтобы вытащить информацию из 1-й столбец, просто добавьте:

string iZero = dgMasterGridView.SelectedRows[0].Cells[0].Value + string.Empty; 

& &

cmd.Parameters.AddWithValue("@Item0", iZero); 

Не забудьте добавить его в SQLQuery строке также.

Вы также можете сохранить информацию в Var для последующего использования внутри или вне области действия.

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

  • Нет связанных вопросов^_^