gpt4 book ai didi

c# - 从 Visual Studio 连接到 sql 数据库时出错

转载 作者:行者123 更新时间:2023-11-29 17:30:32 25 4
gpt4 key购买 nike

我是使用 C# 进行 Visual Studio 编程的新手。我想将我的数据从 Visual Studio 连接到 mysql 数据库。我使用 XAMPP 作为服务器,但是当我尝试连接时,它给出错误消息:“连接必须有效且打开”。我不知道如何解决它。我已经尝试了一些方法来解决这个问题,但仍然没有解决。

using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace scadaSql
{
public partial class Form1 : Form
{
MySqlConnection connectionMySql;

bool statusServer = false;
string server = "localhost";
string database = "topsus_iot";
string uid = "root";
string pass = "";
string conString;
int checkCounter = 0;
int timeCounter = 0;
int filesCnt = 0;
int loopProg = 0;

public void sqlInsert(int temp, int humidity)
{
try
{
MySqlCommand cmd = connectionMySql.CreateCommand();
cmd.CommandText = "INSERT INTO data (device_id, temperature, humidity) VALUE(2, @temp, @humidity)";
cmd.Parameters.AddWithValue("@temp", temp);
cmd.Parameters.AddWithValue("@humidity", humidity);
cmd.ExecuteNonQuery();
}
catch (Exception X)
{
MessageBox.Show(X.Message);
throw;
}
}

public bool sqlClose()
{
try
{
connectionMySql.Close();
label4.Text = "disconnected";
label4.ForeColor = System.Drawing.Color.Lime;
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}

public bool sqlOpen()
{
try
{
connectionMySql.Open();
label4.Text = "Connected";
label4.ForeColor = System.Drawing.Color.Lime;
return true;
}
catch (MySqlException mx)
{
switch (mx.Number)
{
case 0:
break;
case 1045:
break;
}
return false;
}
}
public Form1()
{
InitializeComponent();
conString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + pass + ";";
connectionMySql = new MySqlConnection(conString);
}

private void Form1_Load(object sender, EventArgs e)
{
statusServer = false;
sqlOpen();

}

private void button1_Click(object sender, EventArgs e)
{
sqlInsert((int)temperature.Value, (int)humidity.Value);
}
}
}

最佳答案

您需要在创建 sql 命令之前打开连接。看来您从未调用 SQLOpen 方法,因此连接从未初始化和打开,因此您的插入语句失败。

我建议为您的类创建一个构造函数并对其调用 open 命令。

此外,运行命令后不要忘记调用 sqlClose()。

关于c# - 从 Visual Studio 连接到 sql 数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50702523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com