Save DataTable/DataRow

Top  Previous  Next

对于一个修改、删除或新增过记录的DataTable或DataRow,可以使用Database.Save()方法直接Save回数据库,Database会根据需要执行insert、delete或update。并且,Save()方法支持批处理,指定batchSize为每次批处理执行的SQL命令数。该批处理支持是由DataAdapter的BatchUpdate提供的,根据MSDN文档,目前,只有SQL SERVER和Oracle数据库支持,其他数据库会忽略该参数。

 

例如:

 

SelectSqlSection selectSection = db.Select(Northwind.Categories)

   .Where(Northwind.Categories.CategoryID == catID)

   .OrderBy(Northwind.Categories.CategoryID.Desc)

   .SetSelectRange(1, 0, Northwind.Categories.CategoryID);

DataTable dt = selectSection.ToDataSet().Tables[0];

 

dt.Rows[0]["CategoryName"] = "modified";

 

db.Save(selectSection.ToDbCommand(), 10, dt);

 

dt.Rows[0]["CategoryName"] = "modified2";

 

DataRow newRow = dt.NewRow();

newRow["CategoryName"] = "new";

dt.Rows.Add(newRow);

 

db.Save(selectSection.ToDbCommand(), tran, 0, dt.Rows[0], dt.Rows[1]);