Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# gridView中的复选框不';不要更新我的表_C# - Fatal编程技术网

C# gridView中的复选框不';不要更新我的表

C# gridView中的复选框不';不要更新我的表,c#,C#,我使用以下代码在点击复选框时填充表格,但表格中没有任何更改 protected void Button1_Click(object sender, EventArgs e) { con.Open(); for (int i = 0; i < GridView1.Rows.Count; i++) { CheckBox chkUpdate = (CheckBox) GridView1.Rows[i].

我使用以下代码在点击复选框时填充表格,但表格中没有任何更改

protected void Button1_Click(object sender, EventArgs e)
    {
        con.Open();

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            CheckBox chkUpdate = (CheckBox)
      GridView1.Rows[i].Cells[0].FindControl("chkSelect");
            if (chkUpdate != null)
            {
                if (chkUpdate.Checked)
                {
                    string strID = GridView1.Rows[i].Cells[1].Text;
                    SqlCommand cmd;
                    string str1 = "update app1 set p_id=0 where p_id='" + strID + "'";
                    cmd = new SqlCommand(str1, con);
                    cmd .ExecuteNonQuery ();
                }
            }
        }
    } 
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
con.Open();
对于(int i=0;i
我猜您在
cmd.ExecuteNonQuery()中确实没有空格

调试时,能否进入
if(chkUpdate.Checked)

试试这段代码,它很管用

foreach (GridViewRows gdrv in GridView1.Rows)
    {
        CheckBox chkUpdate = (CheckBox)
  gdrv.FindControl("chkSelect");
        if (chkUpdate != null)
        {
            if (chkUpdate.Checked)
            {
                string strID = gdrv.Cells[1].Text;
                SqlCommand cmd;
                string str1 = "update app1 set p_id=0 where p_id='" + strID + "'";
                cmd = new SqlCommand(str1, con);
                con.open();
                cmd .ExecuteNonQuery ();
                con.close();
            }
        }
    }

我认为查询中唯一的问题是“Where”条件。。。如果p_id为Int类型,则不必使用“”

因此,声明必须是:

string str1 = "update app1 set p_id=0 where p_id=" + strID; 

嗯…你的问题是什么?首先,我没有看到问号。其次,我看不出这段代码与填充
DataGridView
有什么关系。
p\u id
的数据类型是什么?@boby and kael我有一个名为app1的表(两列'nam'和'p\u id'p\u id为int类型)…在前端,我在gridview中使用复选框,当用户最终单击按钮时单击复选框..应将更改反映回表格尝试删除查询中的单引号。。而不是
string str1=“更新app1设置p_id=0,其中p_id=”+strID+”
,使用
string str1=“更新app1设置p_id=0,其中p_id=“+strID小心sql注入。@adrianos cmd.ExecuteOnQuery不是一个空格,它是一个问题格式问题。可以调试该方法吗?也就是说,如果在其上放置断点,它是否找到复选框?另外,检查是否在页面加载中重新填充该网格。当回发错误时,你可能只想做(从数据库中重新填充)是的,我做了…但没有得到满意的答案这意味着什么?您的代码进入if(chkUpdate.Checked)代码块?使用此代码,我会得到错误“gridview不包含任何单元格定义您在单元格中使用了什么[1]是否有任何html控件是正确的,我确信上面的代码应该适用于它