功能不会将数据添加到我的数据库

时间:2016-12-04 21:22:25

标签: c# asp.net datagridview

我有一个datagridview,我在其中显示来自我的数据库的信息。
我希望我的用户在最后一行添加信息,然后他会点击按钮添加,这将在数据库中添加一个新行。
功能如下。当我调试它时,它遍历我的所有行,获取所有信息,但它没有将我的新行添加到数据库。

private void addNewAgent()
{
    int row = 0;

    if (ViewState["CurrentTable"] !=null)
    {
        DataTable mydt = (DataTable)ViewState["CurrentTable"];
        DataRow myrow = null;            

        if (mydt.Rows.Count>0)
        {
            for (int i = 1; i <= mydt.Rows.Count; i++)
            {

                TextBox fn = GridView1.Rows[row].Cells[1].FindControl("txt_FirstName") as TextBox;
                TextBox ln = GridView1.Rows[row].Cells[2].FindControl("txt_LastName") as TextBox;
                TextBox email = GridView1.Rows[row].Cells[3].FindControl("txt_Email") as TextBox;

                myrow = mydt.NewRow();
                myrow["UserID"] = i + 1;
                mydt.Rows[i - 1]["FirstName"] = fn.Text;
                mydt.Rows[i - 1]["LastName"] = ln.Text;
                mydt.Rows[i - 1]["email"] = email.Text;

                row++;                   
            }
            mydt.Rows.Add(myrow);                
            ViewState["CurrentTable"] = mydt;
            GridView1.DataSource = mydt;
            GridView1.DataBind();             
        }
        else
        {
            Response.Write("view state is null"); 
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您缺少用于在数据库中保留数据的代码。 现在,您只是将gridview数据添加到viewstate数据表中。 我没有看到这样做的意义,因为gridview本身已经在viewstate中维护其数据。

imho,您应该在页面加载时在gridview中加载数据 捕获gridview rowcommands(编辑,更新,删除)以更新数据库。

您可以在线轻松找到如何通过gridview管理数据的示例 这是一个http://asp.net-informations.com/gridview/gridview-operations.htm

如果您有特殊原因不立即在编辑时保留数据,您可以添加一个按钮&#34;更新数据库&#34;这将遍历viewstate数据表中的所有记录,并明确更新重新发送的数据库记录