好,整點使用類似的LINQ到SQL的是,它給你正確的.NET對象的工作,而不是笨拙的,無類型DataTable
的。
所以如果你使用LINQ到SQL正確,你應該檢索數據爲.NET中使用LINQ到SQL,那麼你應該修改你的.NET對象的對象,並再次使用LINQ到SQL存儲數據。
事情是這樣的:
// set up your Linq-to-SQL DataContext
using (AdventureWorksDataContext ctx = new AdventureWorksDataContext())
{
// get some data - use the *OBJECTS* returned to you! Not a DataTable!
List<Customer> customers = ctx.Customers.Take(10).ToList();
// modify data
foreach (Customer c in customers)
{
c.ModifiedDate = DateTime.Now;
}
// save the changes
ctx.SubmitChanges();
}
所以,如果你有一個DataTable
,什麼我建議是將這些DataRows
變成某種一個儲存在你的數據庫中的對象類型,然後存儲這些信息納入使用LINQ到SQL數據庫 - 這樣的事情:
public void SaveData(DataTable table)
{
// set up your Linq-to-SQL DataContext
using (AdventureWorksDataContext ctx = new AdventureWorksDataContext())
{
// iterate over the data rows
foreach (DataRow row in table.Rows)
{
// Convert the DataRow to an object
YourObjectType myData = ConvertDataRowToObject(row);
// add this data to the Linq-to-SQL data context
ctx.YourObjectTypes.InsertOnSubmit(myData);
}
// save the changes
ctx.SubmitChanges();
}
}
的***更好的辦法***將是使用** .NET對象**是LINQ到SQL回報,*。 *不是**笨拙的舊的'DataTable',它具有無類型的列和行..... –
謝謝Marc_s.可否請您提示我如何提交數據。 – Mohit