我正在开发一个目前有一个绑定到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。还有另一种更新数据库的简单方法吗?