2014-12-04 4 views
0

У меня есть этот метод, чтобы проверить, проверяются ли данные в моем gridview или нет, если они отмечены, они должны быть вставлены в базу данных. Как вы можете видеть только те данные, я хочу, чтобы вставить из GridView текст из ячейки [2] в GridView и это во имя @HeaderNameВставить несколько проверенных значений из gridview в базу данных

 using (SqlConnection con = new SqlConnection("my con string")) 
     { 
      con.Open(); 
      foreach (GridViewRow row in GridViewConsNames.Rows) 
      { 
       CheckBox myCheckBox = row.FindControl("myCheckBox") as CheckBox; 
       if (myCheckBox.Checked) 
       { 
        using (SqlCommand cmd = new SqlCommand("INSERT INTO Accounting_Consolidation_ServiceOutputs(Cusomer_Name, Service_Name, Header_Name, Sort_Postion, Rename_to, Value) Values(@CustName,@ServiceName,@HeaderName,@Sort,@Rename,@Value)", con)) 
        { 
         //cmd.Parameters.AddWithValue("PersonId", Convert.ToInt32(GridViewConsNames.DataKeys[row.RowIndex].Value)); 
         cmd.Parameters.AddWithValue("@CustName", TextBoxCustName.Text); 
         cmd.Parameters.AddWithValue("@ServiceName", DropDownListServicesAvailable2.SelectedItem.Text); 
         cmd.Parameters.AddWithValue("@HeaderName", "Name of the checked cells from my gridview"); 
         cmd.Parameters.AddWithValue("@Sort", null); 
         cmd.Parameters.AddWithValue("@Rename", ""); 
         cmd.Parameters.AddWithValue("@Value", null); 
         cmd.ExecuteNonQuery(); 
        } 
       } 
      } 
     } 

Я попытался с этим

GridViewRow row = GridViewConsNames.SelectedRow; 
string headername = row.Cells[2].Text; 

Но это, похоже, не работает

+0

взрываются? вы можете посмотреть AddWithValue = @HeaderName Мне нужно поместить его туда, это не сработает, потому что я просто понял, что gridview.slected row не работает, поскольку нет выбранных строк, и все они выбраны с помощью флажка вместо – MishMish

+0

Что такое _ «Имя проверенных ячеек из моего gridview» _? Вы действительно хотите вставить свойство «Текст» этих флажков? Если да, почему вы не использовали 'myCheckBox.Text'? –

+0

Поскольку флажок и текст рядом с ним находятся в двух разных ячейках, но в той же строке. Так что в основном, просто проверьте имена, которые я хочу, и они вставляют их в таблицу, просто не хватает headerName – MishMish

ответ

1

Почему вы используете GridViewRow row = GridViewConsNames.SelectedRow, когда вы на самом деле хотите использовать все строки, где установлен флажок?

Так что я думаю, что это то, что вы хотите:

foreach (GridViewRow row in GridViewConsNames.Rows) 
{ 
    CheckBox myCheckBox = row.FindControl("myCheckBox") as CheckBox; 
    if (myCheckBox.Checked) 
    { 
     // ... 
      string headerName = row.Cells[2].Text; 
      cmd.Parameters.AddWithValue("@HeaderName", headerName); 
     // ... 
    } 
} 
+0

Привет, извините, мой поздний ответ, я решил его, посмотрев на ваш метод с небольшими изменениями, но это было правильно! Большое спасибо за помощь – MishMish

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