0

我正在制作一个简单的 Windows 应用程序表单,以便在数据库中注册一些人,所以我在其中创建了一个连接类:

public void Query_send(string cmd)
    {


        String config = "server=127.0.0.1;uid=root;database=bdcliente;";

        MySqlConnection conn = new MySqlConnection(config);
        MySqlCommand comm = new MySqlCommand(cmd, conn);
        try
        {
            conn = new MySql.Data.MySqlClient.MySqlConnection();
            conn.ConnectionString = config;
            conn.Open();
        }
        catch
        {
            MessageBox.Show("Error when connecting to the database!");
        }
        finally
        {
            conn.Close();
        }
    }

然后在 BUTTON 中为 MySql 提供信息我使用这个:

        private void button1_Click(object sender, EventArgs e)
    {
        Query instance = new Query();
        instance.Query_send("INSERT INTO `tbcliente`(`codCliente`, `name`, `cpf`, `telephone`) VALUES ([" + textBox1 + "],[" + textBox2 + "],[" + textBox3 + "],[" + textBox4 + "])");
    }

当我单击注册按钮时,我总是收到连接错误,有人可以帮助我或给我一个教程链接,教我正确的方法吗?谢谢,伊阿古。

4

2 回答 2

0

奇怪的问题,但是您是否尝试过为数据库应用密码?根据 MySQL 的版本,我在未分配 root 密码时遇到了一些问题(在本地计算机上,您可以安全,也可以将“root”指定为密码)。另一种选择是创建一个具有权限的用户帐户并尝试使用这些凭据进行连接。

不确定这是否会有所帮助,但这是消除的过程。

也不确定方法是否正在处理中,但即使它连接,也没有针对数据库的执行命令。

public void Query_send(string cmd)
{


    String config = "server=localhost;uid=root;database=bdcliente;";
    MySqlConnection conn = new MySqlConnection(config);
    MySqlCommand comm = new MySqlCommand(cmd, conn);

    try
    {
        conn.Open();
        comm.ExecuteNonQuery(); '--this was missing
    }
    catch
    {
        MessageBox.Show("Error when connecting to the database!");
    }
    finally
    {
        conn.Close();
    }
}
于 2013-05-16T13:48:21.870 回答
0

我的猜测是您需要将 VALUES 子句结果用单引号括起来,因为您生成的 SQL 将是无效的。

VALUES ('" + textbox1 + "')

只有在引用表名或列名时才需要括号。不是当你指的是字符串文字时。

于 2013-05-13T19:48:16.187 回答