Лучший способ обработки данных в SQL Server? - PullRequest
0 голосов
/ 28 февраля 2012

Ну, я сейчас в это вмешался. Я конвертирую программу из Access vba в C #, чтобы я мог запустить ее независимо (это другая история ...) Программа читает файл Excel, а затем проверяет каждую строку и столбец, чтобы убедиться, что данные действительны (числовые и т. Д.) а затем ищет различные поля данных для создания таблицы транзакций на SQL Server. Таблица транзакций никогда не проверяется повторно, поэтому она должна быть правильной с первой попытки.

Я привык к процедурным языкам (хотя у меня есть сносные знания T-SQL), но теперь (VS2010) кажется, что мне нужно использовать либо «LINQ to SQL», либо «Entity Data Model», чтобы получить данные из SQL Server (2005). Исторически я использовал наборы записей DAO или ADO. Мне нужно извлекать несколько столбцов одновременно, хотя по большому счету я не буду обновлять таблицы. Я могу сделать обновления, используя хранимые процедуры SQL Server (и предположительно ADO?)

Хотя я начал работать с Windows Forms, я, скорее всего, перейду на консольное приложение, прежде чем закончить.

Что вы, ребята, рекомендуете? Моя книга (C # 4.0 Гриффитс, Адамс и Либерти) в основном говорит о модели данных сущностей. Но так как я использую исключительно 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

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Использовать каркас сущностей, последние исправления сделали его жизнеспособным.Я использую nhibernate, потому что это чаще встречается там, где я работаю.Если бы этот вопрос возник год или два назад, я бы не рекомендовал структуру сущностей, но сейчас это жизнеспособный вариант.Это действительно субъективно, выбери то, что, как ты считаешь, сделает это за тебя и попробуй, это не более того.

0 голосов
/ 28 февраля 2012

Вы уверены, что хотите переписать свою программу?Что еще, кроме разбора Excel?Я бы порекомендовал вам использовать SSIS , я написал несколько процедур импорта / экспорта и преобразование с использованием SSIS, он экстремальный быстрый, и они улучшают его дажеБольше.Это действительно очень хорошо!

Я не думаю, что вам нужно, но если вам нужен графический интерфейс, вы можете использовать стартовый пакет SSIS и получать уведомления о том, что происходит в процессе.

PS: регистрация ведется из коробки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...