Я получаю эту ошибку в vb.net, когда пытаюсь подключиться к базе данных mysql:
An error occurred creating the form. See Exception.InnerException for details. The error is: The given key was not present in the dictionary.
Я читаю информацию базы данных (пользователь, пароль, хост, база данных) из текстового файла.
Dim FILE_NAME As String = "D:\connection.txt"
Dim objReader As New StreamReader(FILE_NAME)
Public Sub textfileopener()
host = objReader.ReadLine
user = objReader.ReadLine
password = objReader.ReadLine
database = objReader.ReadLine
objReader.Close()
End Sub
Затем присваиваем его этим переменным:
Public host
Public database
Public user
Public password
Затем, наконец, я подключаюсь к базе данных:
Dim con As New MySqlConnection("Server=" + host + ";Database=" + database + ";Uid=" + user + ";Pwd=" + password + ";")
Я думаю, что она не получает никаких значений,Потому что, если я сразу назначу значения, я могу без проблем подключиться:
Public host = "localhost"
Public database = "db"
Public user = "root"
Public password = "pw
Но если я сделаю это таким образом, то все будет постоянным.И я не могу ничего изменить вообще.Моя проблема заключается в получении правильных значений в строке подключения.Как мне это сделать?
Обновление
System.InvalidOperationException was unhandled
Message="An error occurred creating the form. See Exception.InnerException for details. The error is: The given key was not present in the dictionary."
Source="QueryGenerator"
StackTrace:
at QueryGenerator.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 190
at QueryGenerator.My.MyProject.MyForms.get_Form1()
at QueryGenerator.My.MyApplication.OnCreateMainForm() in C:\Users\Nrew\Documents\Visual Studio 2008\Projects\QueryGenerator\QueryGenerator\My Project\Application.Designer.vb:line 35
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at QueryGenerator.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Collections.Generic.KeyNotFoundException
Message="The given key was not present in the dictionary."
Source="mscorlib"
StackTrace:
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at MySql.Data.MySqlClient.MySqlConnectionStringBuilder.get_UserID()
at MySql.Data.MySqlClient.NativeDriver.Authenticate()
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at QueryGenerator.connection..ctor() in C:\Users\Nrew\Documents\Visual Studio 2008\Projects\QueryGenerator\QueryGenerator\connection.vb:line 22
at QueryGenerator.Form1..ctor() in C:\Users\Nrew\Documents\Visual Studio 2008\Projects\QueryGenerator\QueryGenerator\Form1.vb:line 5
InnerException: