Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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# 从网格视图中删除行而不使用数据库_C# - Fatal编程技术网

C# 从网格视图中删除行而不使用数据库

C# 从网格视图中删除行而不使用数据库,c#,C#,我正在使用此代码从网格视图中删除行,并且这些行正在被删除,但是当我向网格视图添加新行时,删除的行会再次返回任何建议我应该如何从网格视图中删除行,并且我没有在其上使用数据库。提前谢谢 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add(new DataCo

我正在使用此代码从网格视图中删除行,并且这些行正在被删除,但是当我向网格视图添加新行时,删除的行会再次返回任何建议我应该如何从网格视图中删除行,并且我没有在其上使用数据库。提前谢谢

 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("EmpId", typeof(string)));
        dt.Columns.Add(new DataColumn("EmpName", typeof(string)));
        dt.Columns.Add(new DataColumn("DeptName", typeof(string)));
        dt.Columns.Add(new DataColumn("EmpAddress", typeof(string)));
        dt.Columns.Add(new DataColumn("EmpSalary", typeof(string)));
        string Id = string.Empty;
        string Name = string.Empty;
        string DeptName = string.Empty;
        string EmpAddress = string.Empty;
        string EmpSalary = string.Empty;
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = (GridViewRow)GridView1.Rows[i];
            if (i != e.RowIndex)
            {
                Id = row.Cells[1].Text;
                Name = row.Cells[2].Text;
                DeptName = row.Cells[3].Text;
                EmpAddress = row.Cells[4].Text;
                EmpSalary = row.Cells[5].Text;
                DataRow dr = dt.NewRow();
                dr["EmpId"] = Id;
                dr["EmpName"] = Name;
                dr["DeptName"] = DeptName;
                dr["EmpAddress"] = EmpAddress;
                dr["EmpSalary"] = EmpSalary;
                dt.Rows.Add(dr);
            }

        }

        GridView1.EditIndex = -1;
        GridView1.DataBind();
        GridView1.DataSource = dt;
    }
受保护的无效GridView1\u行删除(对象发送方,GridViewDeleteEventArgs e)
{
DataTable dt=新的DataTable();
Add(新数据列(“EmpId”,typeof(string));
Add(新数据列(“EmpName”,typeof(string));
Add(新的数据列(“DeptName”,typeof(string));
Add(新的数据列(“EmpAddress”,typeof(string));
Add(新的数据列(“EmpSalary”,typeof(string));
string Id=string.Empty;
string Name=string.Empty;
string DeptName=string.Empty;
string EmpAddress=string.Empty;
string empalary=string.Empty;
对于(int i=0;i
我的“添加到行”代码如下

private void AddNewRecordRowToGrid()
    {
        // check view state is not null   
        if (ViewState["EmployeeDetails"] != null)
        {
            //get datatable from view state   
            DataTable dtCurrentTable = (DataTable)ViewState["EmployeeDetails"];
            DataRow drCurrentRow = null;
            if (dtCurrentTable.Rows.Count > 0)
            {
                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                {
                    //add each row into data table   
                    drCurrentRow = dtCurrentTable.NewRow();
                    drCurrentRow["EmpId"] = txtEmpId.Text;
                    drCurrentRow["EmpName"] = txtEmpName.Text;
                    drCurrentRow["DeptName"] = txtDeptName.Text;
                    drCurrentRow["EmpAddress"] = txtEmpAddress.Text;
                    drCurrentRow["EmpSalary"] = txtEmpSalary.Text;
                }
                //Remove initial blank row   
                if (dtCurrentTable.Rows[0][0].ToString() == "")
                {
                    dtCurrentTable.Rows[0].Delete();
                    dtCurrentTable.AcceptChanges();
                }
                //add created Rows into dataTable   
                dtCurrentTable.Rows.Add(drCurrentRow);
                //Bind Gridview with latest Row   
                GridView1.DataSource = dtCurrentTable;
                GridView1.DataBind();
            }
        }

    }
private void AddNewRecordRowToGrid()
{
//检查视图状态不为空
如果(ViewState[“EmployeeDetails”]!=null)
{
//从视图状态获取数据表
DataTable dtCurrentTable=(DataTable)视图状态[“EmployeeDetails”];
DataRow drCurrentRow=null;
如果(dtCurrentTable.Rows.Count>0)
{

对于(int i=1;i,因为您在从ViewState添加后加载员工

DataTable dtCurrentTable = (DataTable)ViewState["EmployeeDetails"];
删除的行没有在那里删除。我建议在您的
视图状态中编辑
数据表

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    if (ViewState["EmployeeDetails"] != null)
    {
        DataTable dtCurrentTable = (DataTable)ViewState["EmployeeDetails"];
        dtCurrentTable.Rows.RemoveAt(e.RowIndex);
        ViewState["EmployeeDetails"] = dtCurrentTable;
        GridView1.EditIndex = -1;
        GridView1.DataBind();
        GridView1.DataSource = dtCurrentTable;
    }
}


因为您在从ViewState添加后加载了员工

DataTable dtCurrentTable = (DataTable)ViewState["EmployeeDetails"];
删除的行没有在那里删除。我建议在您的
视图状态中编辑
数据表

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    if (ViewState["EmployeeDetails"] != null)
    {
        DataTable dtCurrentTable = (DataTable)ViewState["EmployeeDetails"];
        dtCurrentTable.Rows.RemoveAt(e.RowIndex);
        ViewState["EmployeeDetails"] = dtCurrentTable;
        GridView1.EditIndex = -1;
        GridView1.DataBind();
        GridView1.DataSource = dtCurrentTable;
    }
}


错误在未显示的
AddRow
方法中的某个地方-我假设您再次使用该方法绑定数据库中的数据(数据未被删除)@fubo我已发布了我的AddRow错误在未显示的
AddRow
方法中的某个地方-我假设您再次使用该方法绑定数据库中的数据(数据未被删除的地方)@fubo我已发布我的添加行