Sql 将多个选中值从gridview插入数据库
如果我的gridview中的数据被检查与否,我有这个方法来循环,如果它们被检查,它们应该被插入到数据库中。 正如您所看到的,我想从gridview中插入的唯一数据是gridview中单元格[2]中的文本,它的名称为@HeaderNameSql 将多个选中值从gridview插入数据库,sql,asp.net,gridview,checkbox,insert,Sql,Asp.net,Gridview,Checkbox,Insert,如果我的gridview中的数据被检查与否,我有这个方法来循环,如果它们被检查,它们应该被插入到数据库中。 正如您所看到的,我想从gridview中插入的唯一数据是gridview中单元格[2]中的文本,它的名称为@HeaderName using (SqlConnection con = new SqlConnection("my con string")) { con.Open(); foreach (GridV
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;
但是这似乎不起作用为什么要使用
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);
// ...
}
}
爆炸?你可以查看AddWithValue=@HeaderName我需要把它放在那里,它不起作用,因为我刚刚意识到gridview.s选中的行不起作用,因为没有选中任何行,它们都是通过复选框选中的,而不是“我的gridview中选中的单元格的名称”是什么?是否确实要插入这些复选框的
Text
属性?如果是这样,为什么不使用myCheckBox.Text
?因为复选框和它旁边的文本位于两个不同的单元格中,但在同一行上。所以基本上,只要检查我想要的名字,然后把它们插入表中,就可以了,只是缺少了一个headerNameHi人对不起,我迟了回答,我通过查看你的方法解决了这个问题,只做了一些小改动,但这是对的!非常感谢你的帮助