我正在尝试将C#中的项目与MySQL ( localhost ) 链接,但在执行登录时出现错误
System.Collections.Generic.KeyNotFoundException was unhandled
HResult=-2146232969
Message=The given key was not present in the dictionary.
Source=mscorlib
StackTrace:
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String CharSetName)
at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData41()
at MySql.Data.MySqlClient.NativeDriver.GetFieldMetaData()
at MySql.Data.MySqlClient.NativeDriver.ReadColumnMetadata(Int32 count)
at MySql.Data.MySqlClient.ResultSet.LoadMetaData()
at MySql.Data.MySqlClient.ResultSet.NextResult()
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at College_Student.login.button1_Click(Object sender, EventArgs e) in C:\Users\zMJ\Desktop\College_Student\College_Student\login.cs:line 87
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
Run Code Online (Sandbox Code Playgroud)
这就是我尝试的连接
MySqlConnection con = new MySqlConnection(" Server=localhost;Database=college_management;Uid=root;Pwd=12345678;CharSet=utf8;");
Run Code Online (Sandbox Code Playgroud)
并使用库
using MySql.Data.MySqlClient;
using System.Data;
Run Code Online (Sandbox Code Playgroud)
并在按钮中
private void button1_Click(object sender, EventArgs e)
{
i=0;
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM admins where name='" + textBox1.Text + "' and password='" + textBox2.Text + "' ";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(dt);
i = Convert.ToInt32(dt.Rows.Count.ToString());
if (i == 0)
{
MessageBox.Show("error");
}
else
{
this.Hide();
new home().Show();
}
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
该问题似乎是由于使用 Connector/NET 不支持的字符集(对于您的数据库或列)引起的。(例如,请参阅MySQL bug 58244。)这通常可以通过从 NuGet 更新到库的最新版本来解决。
如果您已经在运行最新版本的 Connector/NET,请尝试切换到MySqlConnector,这是一个更可靠的C# MySQL ADO.NET 库。
| 归档时间: |
|
| 查看次数: |
12718 次 |
| 最近记录: |