【发布时间】:2015-02-02 12:33:13
【问题描述】:
如果我的gridview中的数据被选中,我有这个方法来循环遍历,如果它们被选中,它们应该被插入到数据库中。 如您所见,我想从 gridview 中插入的唯一数据是 gridview 中 cell[2] 中的文本,它的名称为 @HeaderName
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;
但这似乎不起作用
【问题讨论】:
-
爆炸?你可以看看 AddWithValue = @HeaderName 我需要把它放在那里,它不起作用,因为我刚刚意识到 gridview.slected 行不起作用,因为没有选择行,它们都是通过复选框选择的
-
什么是“我的gridview中选中的单元格的名称”?您真的要插入这些复选框的
Text属性吗?如果是这样,你为什么不使用myCheckBox.Text? -
因为复选框和旁边的文本位于 2 个不同的单元格中,但位于同一行。所以基本上,只需检查我想要的名称并将它们插入表中,只是缺少 headerName
标签: sql asp.net gridview checkbox insert