从gridview插入多个选中的值到数据库

问题描述:

我有这种方法来循环如果我gridview中的数据被检查或没有,如果他们被检查他们应该插入数据库。 正如你可以看到我想在GridView中插入的唯一数据是从单元格中的文本[2]在GridView和它在从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(); 
        } 
       } 
      } 
     } 

我有这个

试过 @HeaderName的名字
GridViewRow row = GridViewConsNames.SelectedRow; 
string headername = row.Cells[2].Text; 

但这似乎不工作

+0

爆炸?你可以看看AddWithValue = @HeaderName我需要把它放在那里,它不工作,因为我刚刚意识到gridview.slected行不起作用,因为没有选择行,他们都通过复选框选择而不是 – MishMish 2014-12-05 08:46:57

+0

什么是_“从我gridview检查单元格的名称”_?你真的想插入这些复选框的“Text”属性吗?如果是这样,为什么你没有使用'myCheckBox.Text'? – 2014-12-05 08:50:14

+0

由于复选框和旁边的文本位于2个不同的单元格中,但在同一行上。所以基本上,只需检查我想要的名称,然后将它们插入表中,只是缺少headerName – MishMish 2014-12-05 09:45:25

为什么使用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 2014-12-09 13:50:22