Ну весь смысл использования что-то вроде Linq к SQL является то, что она дает правильное .NET объекты работать, вместо неуклюжей, нетипизированного DataTable
.
Итак, если вы правильно используете Linq-to-SQL, вы должны получить данные как объекты .NET с использованием Linq-to-SQL, тогда вы должны изменить свои объекты .NET и снова использовать Linq-to-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-To-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();
}
}
The *** лучший способ *** будет использовать ** NET объекты **, который возвращает Linq-на-SQL, и *. * не ** неуклюжий старый 'DataTable', который имеет нетипизированные столбцы и строки ..... –
Спасибо Marc_s.Какой вы можете предложить мне, как я могу отправить данные. – Mohit