我的C#代码有点问题(我通常是c ++开发人员,所以我只知道c#的大部分基础知识)
我想编写一个类来使用该程序执行SQL查询,但是它什么也没做,我也没有收到任何错误。
我写的MySqlConnectionHandler类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace WS_Studio_tool
{
class MySqlConnectionHandler
{
private MySqlConnection connection;
private string ConnectionString;
public MySqlConnectionHandler()
{
try
{
ConnectionString = "SERVER=localhost;" +
"DATABASE=ws_creator_beta;" +
"UID=root;" +
"PASSWORD=AF362GL!";
connection = new MySqlConnection(ConnectionString);
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message, "MySql Fehler!");
}
}
public bool InsertRow(string SQL_Query)
{
try
{
MySqlCommand command = connection.CreateCommand();
command.CommandText = SQL_Query;
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message, "MySql Fehler!");
}
return true;
}
}
}
我的函数调用(我玩了很多,所以它可能包含不必要的东西):
string newquery = QueryTextBox1.ToString();
MySqlConnectionHandler SqlHandler = new MySqlConnectionHandler();
SqlHandler.InsertRow(newquery);
我的MySql查询:
INSERT INTO user_data (username,passwd) VALUES ('asdf', 'asdf');
如果有人可以快速查看它,那将是非常好的,也许你能找到错误..
答案 0 :(得分:0)
你没有调用command.Execute,所以你的SQL永远不会被执行。
答案 1 :(得分:0)
你不是telling the command to execute:另外,你需要明确open the connection before using it,所以将这些行添加到InsertRow:
connection.Open();
command.ExecuteNonQuery();
我还建议在完成连接后处理连接 - 通过在IDisposable
类上实现MySqlConnectionHandler
,或者 - 更简单 - 只需在{{1}内创建连接执行查询时阻止:
using