无法在localhost

时间:2016-12-08 04:42:49

标签: c# mysql xampp

所以我试图将新记录添加到SQL数据库中。 MySQL数据库服务器正在XAMPP上运行,我已将用户名配置为root用户和要测试的密码。我已经尝试过本地主机'和' 127.0.0.1'作为服务器地址,但他们都不工作。 这是使用:

using System;
using System.Data;
using Gtk;
using MySql.Data;
using MySql.Data.MySqlClient;

单击该按钮时,它会捕获异常并显示错误消息,但我无法确定与服务器的连接失败的原因。

protected void OnAddItemClicked(object sender, EventArgs e)
{
    MySqlConnection connection;
    string server = "localhost";
    string database = "shop";
    string uid = "root";
    string password = "test";
    string connectionString;
    connectionString = "SERVER=" + server + ";" + "DATABASE=" +
    database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

    connection = new MySqlConnection(connectionString);

    try
    {
        connection.Open();
        if (connection.State == ConnectionState.Open)
        {
            MySqlCommand cmd = new MySqlCommand("INSERT INTO items (ItemName,Price,PriceVAT) values(@ItemName,@Price,@PriceVAT", connection);
            cmd.Parameters.Add("@ItemName", nameEntry.Text);
            cmd.Parameters.Add("@Price", priceEntry.Text);
            cmd.Parameters.Add("@PriceVAT", "1");
            cmd.ExecuteNonQuery();

            MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Data entered successfully.");
            md.Run();
            md.Destroy();
        }
        else
        {
            MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Database connection failed.");
            md.Run();
            md.Destroy();
        }

    }
    catch (Exception ex)
    {
        MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, "Error occurred, please try again later");
        md.Run();
        md.Destroy();
    }

    connection.Close();
}

1 个答案:

答案 0 :(得分:0)

如果db用户和密码正确,那么请使用

之类的连接字符串
connectionString  = @"server=" + server  + ";userid=" + uid + ";password="
                       + password + ";database=" + database;

如果您的mysql端口不像3306那样默认,那么您可以指定自定义端口号

connectionString = @"server=" + server + ";port=" + port + ";userid=" + uid  + ";password="
                       + password  + ";database=" + database;