对于个人项目,我正在尝试使用 MySQL 访问我创建的存储图像的数据库。我正在用 C# 编写脚本,但我的连接拒绝打开。这是我的代码片段(相关部分):
using MySql.Data.MySqlClient;
string cs ="Server=localhost;Database=test;Uid=root;Pwd=password;";
MySqlConnection conn = null;
MySqlDataReader rdr = null;
try
{
conn = new MySqlConnection(cs);
conn.Open();
string stm = "SELECT * FROM images";
MySqlCommand cmd = new MySqlCommand(stm, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//do stuff
}
catch (Exception ex)
{
print (ex.ToString());
}
finally
{
if (rdr != null)
{
rdr.Close();
}
if (conn != null)
{
conn.Close();
}
}
我已经设置了断点,罪魁祸首是 conn.Open() 函数。那时它会抛出一个异常:
System.TypeInitializationException:MySql.Data.MySqlClient.MySqlTrace 的类型初始化程序引发了异常---> System.MissingMethodException:找不到方法:'System.Configuration.IConfigurationSectionHandler.Create'。在 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] 在:0 在 System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] 在:0 在系统.Configuration.ConfigurationSettings.GetConfig (System.String sectionName) [0x00000] in :0 at System.Diagnostics.DiagnosticsConfiguration.get_Settings () [0x00000] in :0 at System.Diagnostics.TraceSource..ctor (System.String name, SourceLevels sourceLevels) [0x00000] in :0 在 System.Diagnostics.TraceSource..ctor (System.Diagnostics.TraceSource..ctor)
--- 内部异常堆栈跟踪结束 --- 在 MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder 设置) [0x00000] in :0 UnityEngine.MonoBehaviour:print(Object) UIScript:Start( ) (在 Assets/UIScript.cs:123)
在我看来,这听起来像是一个旧的/不匹配的 dll,但我引入了 MySql.Data、I18N 和 I18N.West,作为我在谷歌搜索时建议的几个解决方案。我已经用完了建议的修复程序,希望有人能提供帮助。我正在使用 MySQL 5.6 和 .Net 连接器 5.6.6。