Ну, я вступил в это сейчас. Я конвертирую программу из Access vba в C#, поэтому я могу запускать ее самостоятельно (это еще одна история ...). Программа считывает файл Excel, а затем проверяет каждую строку и столбец, чтобы убедиться, что данные действительны (числовые и т. Д.). а затем ищет различные поля данных для создания таблицы транзакций на SQL Server. Таблица транзакций никогда не проверяется повторно, поэтому с первой попытки она должна быть правильной.Лучший способ обработки данных в SQL Server?
Я привык к процедурным языкам (хотя у меня есть проходимое знание T-SQL), но теперь (VS2010) мне кажется, что мне нужно использовать «LINQ to SQL» или «Entity Data Model», чтобы получить данные из SQL Server (2005). Исторически я использовал записи DAO или ADO. Мне нужно получить несколько столбцов за раз, хотя по большому счету я не буду обновлять таблицы. Я могу сделать обновления с помощью хранимых процедур SQL Server (и, предположительно, ADO?)
Хотя я начал работу с использованием Windows Forms, я, скорее всего, перевешу ее на консольное приложение, прежде чем закончить.
Что вы, ребята, рекомендуете? Моя книга (C# 4.0 Griffiths, Adams and Liberty) в основном говорит о модели данных сущностей. Но поскольку я использую только SQL Server (2005), не подходит ли «Linq to SQL»? Любые ссылки, которые помогут мне начать работу? Вот пример «метод» (в VBA ...), которые я использую в настоящее время это довольно автономный, что я использую для моей первой попытки:
Function ValidateOverride(LaborRateID As Variant) As Long
If IsNull(LaborRateID) = True Or IsNumeric(LaborRateID) = False Then
ValidateOverride = 0
Exit Function
End If
Dim rstOverrideLaborRates As DAO.Recordset2
Set rstOverrideLaborRates = CurrentDb.OpenRecordset("SELECT * FROM tblStaffAugLaborRates WHERE ID=" & LaborRateID, dbOpenDynaset, dbSeeChanges + dbFailOnError)
If rstOverrideLaborRates.EOF Then
HandleMessages "Row Rejected -- Invalid Override Labor Rate"
ValidateOverride = 0
Else
ValidateOverride = LaborRateID
If (dtCurrentWorkDate < rstOverrideLaborRates!EffectiveDate) Or (dtCurrentWorkDate > rstOverrideLaborRates!ExpirationDate) Then
HandleMessages "Row Rejected -- Override Labor Rate is not within its valid dates"
ValidateOverride = 0
End If
If rstOverrideLaborRates!VendorID <> lngCurrentVendorID Then
HandleMessages "Row Rejected -- Override Labor Rate is not valid for this vendor"
ValidateOverride = 0
End If
End If
rstOverrideLaborRates.Close
Set rstOverrideLaborRates = Nothing
End Function
Пожалуйста, не прикрепите свои заголовки к «C#» и тому подобное. Для этого нужны теги. –
LINQ to SQL и Entity Framework работают как с SQL Server, так и Microsoft в последнее время уделяют больше внимания EF, чем LINQ to SQL. Похоже, вы могли бы сделать с книгой по LINQ, в основном ... –
Хорошо, я не буду приписывать такие названия. Я больше привык к forumns, у которых нет тегов. Спасибо за совет. –