SqlConnection,Getting错误,无法连接到数据库(发生在System.Data.dll中)

本文关键字:System Data dll 数据库 错误 Getting 连接 SqlConnection | 更新日期: 2023-09-27 18:25:12

我两周前刚刚开始学习C#,所以我知道的不多,但现在我只想制作我的第一个程序。我真的不在乎ATM中的安全漏洞,因为当我知道更好的解决方案时,我会及时修复这些问题。

所以我得到了这个错误:

An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll
Additional information: A severe internal connection error has occurred.

我已经处理这个错误两天了,现在修改我的代码并在互联网上搜索解决方案,但运气不佳。所以我转向这里,因为我看到这里有一些专家。

错误代码:

        using (SqlConnection con = new SqlConnection("server=SERVERIP,3306;Integrated Security=True;database=data;uid=USER;password=PASS"))
        {
            con.Open(); //ERROR HERE
            using (SqlCommand cmd = new SqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con))
            {
                cmd.Parameters.AddWithValue("@Datum", textBox1.Text);
                cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
                cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Sparat!");
            }
         }

所以基本上,我想用这个程序做的是,用户在文本框中键入的数据被保存在数据库中。

当我用全大写字母键入单词时,我的意思是它是其他东西,例如Ip和密码等。

SqlConnection,Getting错误,无法连接到数据库(发生在System.Data.dll中)

您使用了错误的连接类。您正试图将MySQL数据库当作SQL Server数据库进行对话。

您需要使用MySqlConnection,而不是SqlConnectionMySqlConnection在MySQL连接器/NET中,也可以通过NuGet进行安装。

您的代码应该如下所示。

    using (MySqlConnection con = new MySqlConnection("server=SERVERIP;port=3306;database=data;uid=USER;password=PASS"))
    {
        con.Open(); // Hopefully no error here any more
        using (MySqlCommand cmd = new MySqlCommand("insert into info(Datum,Timmar,Rast) Values(@Datum,@Timmar,@Rast)", con))
        {
            cmd.Parameters.AddWithValue("@Datum", textBox1.Text);
            cmd.Parameters.AddWithValue("@Timmar", textBox2.Text);
            cmd.Parameters.AddWithValue("@Rast", textBox3.Text);
            cmd.ExecuteNonQuery();
            MessageBox.Show("Sparat!");
        }
     }

您有Integrated Security=trueuid=USER;password=PASS

如果您提供用户名和密码,则不应该有Integrated Security=true