将数据从GridView获取到C#WebApp中的DataTable中

时间:2014-01-28 19:58:11

标签: c# asp.net sql-server gridview datatable

我正在开发一个目前有一个绑定到MSSQL的GridView的webapp。 GridView正确显示数据库中的数据,并且我已将其中一列显示在文本框中。

我要做的是,获取用户对GridView上的数据所做的更改,以便我可以更新SQL数据库。我想将GridView中的新(已更改)数据转换为DataTable,以便将其与Original DataTable进行比较。但是,当我尝试将GridView中的数据插入到新的DataTable中时,我不断将空白放入单元格中。

这是我的代码:

    protected void btnSave_Click(object sender, EventArgs e)
    {
        DataTable dtU = new DataTable();

        if (GridView.HeaderRow != null)
        {
            for (int i = 0; i < GridView.HeaderRow.Cells.Count; i++)
            {
                dtU.Columns.Add(GridView.HeaderRow.Cells[i].Text);
            }
        }

        foreach (GridViewRow row in GridView.Rows)
        {
            DataRow dr = dtU.NewRow();

            for (int i = 0; i < row.Cells.Count; i++)
            {
                dr[i] = row.Cells[i].Text;
            }
            dtU.Rows.Add(dr);
        }

        DataTable dtOrigData = GlobalVariables.dsOrigData.Tables[0];

        //Get changes
        var rowsTest = dtOrigData.AsEnumerable().Where(
            r => !dtU.AsEnumerable().Select(x => x["Name"]).ToList().Contains(r["Name"])).ToList();

    //do some code to update the SQL Database with the changes
    }

PS。还有另一种更新数据库的简单方法吗?

0 个答案:

没有答案