Visual basic 2017 - system.invalidoperationexception
я не очень хороший программист, но я использую vb.net 2005 и теперь хотите перейти на vb.net 2017 год. l я использую средства библиотеки Microsoft enterprise library для работы с хранимыми процедурами, но каждый раз, когда я запускаю свой проект, чтобы попытаться сохранить запись в sql server, я получаю следующую ошибку:
Система.InvalidOperationException: 'Фабрика поставщика баз данных не установлена для статического DatabaseFactory. Установите фабрику поставщиков, вызывающую метод DatabaseFactory.SetProviderFactory, или указав пользовательские сопоставления, вызвав DatabaseFactory.Метод SetDatabases.
я установил
Install-Package EnterpriseLibrary.Data -Version 6.0.1304я использую трехуровневый подход и вот что я сделал в своем BusinessLogik:
Что я уже пробовал:
1) Класс Поставщиков
Imports Microsoft.Practices.EnterpriseLibrary.Common Imports Microsoft.Practices.EnterpriseLibrary.Data Imports System.Data.Common Imports System.Data Public Class Suppliers #Region "variables" Private dbs As Database #End Region #Region "Properties" Public Property SupplierID() As Long Public Property Company() As String Public Property Contact() As String Public Property Landline() As String Public Property Mobile() As String Public Property Physical_address() As String Public Property Postal_address() As String Public Property Vat_no() As String Public Property UserID() As Integer #End Region #Region "Constructor" Public Sub New(ByVal conn As String) dbs = DatabaseFactory.CreateDatabase(conn) End Sub #End Region #Region "Methods" Public Function SaveSuppliers() As Boolean Dim cmd As DbCommand = dbs.GetStoredProcCommand("sp_saveSuppliers") dbs.AddInParameter(cmd, "@supplierID", DbType.Int64, SupplierID) dbs.AddInParameter(cmd, "@company", DbType.String, Company) dbs.AddInParameter(cmd, "@contact", DbType.String, Contact) dbs.AddInParameter(cmd, "@landline", DbType.String, Landline) dbs.AddInParameter(cmd, "@mobile", DbType.String, Mobile) dbs.AddInParameter(cmd, "@physical_address", DbType.String, Physical_address) dbs.AddInParameter(cmd, "@postal_address", DbType.String, Postal_address) dbs.AddInParameter(cmd, "@vat_no", DbType.String, Vat_no) Try Dim ds As DataSet = dbs.ExecuteDataSet(cmd) MsgBox("Supplier saved successfully.", MsgBoxStyle.Information, "FinanceSys") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "FinanceSys") End Try Return True End Function #End Region End Class
2) приложение кон
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="BusinessLogik.My.MySettings.FINConnectionString" connectionString="Data Source=FINANCE-SERVER;Initial Catalog=financial;Persist Security Info=True;User ID=sa;Password=password" /> </connectionStrings> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/> <system.diagnostics> <sources> <!-- This section defines the logging configuration for My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Uncomment the below section to write to the Application Event Log --> <!--<add name="EventLog"/>--> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log --> <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> --> </sharedListeners> </system.diagnostics> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/> </startup> </configuration>
Пожалуйста, помогите, и я был бы рад, если бы кто-то также мог помочь в методе SaveSuppliers. верно ли последнее утверждение "Return True"?? В моем графическом проекте, где я вызываю функцию, я хочу вернуть сообщение.