2015-04-17 6 views
0

Мне нужна помощь в моей передаче данных. Всякий раз, когда я пытаюсь перенести данные из выбранной строки datagridview в базу данных, вместо переноса выбранной строки она передает все данные в datagridview.Передача данных в базу данных из datagridview

Вот код, который я в настоящее время:

private void btnTransfer_Click(object sender, EventArgs e) 
    { 
     if (con.State == ConnectionState.Open) 
     { 
      con.Close(); 
     } 

     using (SqlCommand cmd = new SqlCommand("INSERT INTO tblTransfered(deptNo,date,issuedFrom,scheduleNo,pvNo,name,amount,typeOfPayment) VALUES (@C1,@C2,@C3,@C4,@C5,@C6,@C7,@C8)", con)) 
     { 
      cmd.Parameters.Add(new SqlParameter("@C1", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C2", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C3", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C4", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C5", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C6", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C7", SqlDbType.VarChar)); 
      cmd.Parameters.Add(new SqlParameter("@C8", SqlDbType.VarChar)); 
      con.Open(); 
      foreach (DataGridViewRow row in dataGridView1.Rows) 
      { 
       if (!row.IsNewRow) 
       { 
        cmd.Parameters["@C1"].Value = row.Cells[2].Value; 
        cmd.Parameters["@C2"].Value = row.Cells[0].Value; 
        cmd.Parameters["@C3"].Value = row.Cells[3].Value; 
        cmd.Parameters["@C4"].Value = row.Cells[4].Value; 
        cmd.Parameters["@C5"].Value = row.Cells[1].Value; 
        cmd.Parameters["@C6"].Value = row.Cells[5].Value; 
        cmd.Parameters["@C7"].Value = row.Cells[6].Value; 
        cmd.Parameters["@C8"].Value = row.Cells[7].Value; 
        cmd.ExecuteNonQuery(); 
       } 
      } 
      MessageBox.Show("Files Transfered for Approval Successflly"); 
     } 
+2

Ну, да, можно было бы ожидать * от цикла ... Каков ваш вопрос? –

+0

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

+0

Изменить данныеGridView1.Rows -> dataGridView1.SelectedRows так просто, как –

ответ

1

Если вы хотите вставить только выбранную строку в DataGridView, так что вы должны петля на него, заменить foreach линию на это

foreach (DataGridViewRow row in dataGridView1.SelectedRows) 

UPD

MSDN:

«Свойство SelectionMode должно быть установлено в FullRowSelect или RowHeaderSelect для SelectedRows свойства заполняться выбранными строками.»

+0

, когда я меняю его на selectedRows, отмечая бывает. он просто говорит, что передача выполнена успешно, но отмечается в таблице базы данных –

+0

@ UmarE.Shaibu check Свойство 'SelectionMode' установлено в' FullRowSelect' в 'DataGridView' –

+0

tnks. это сработало. Да благословит Бог. –

0

петля для SelectedRows

foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
Смежные вопросы