不执行MySql查询

时间:2013-12-01 15:07:29

标签: c# mysql

我的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');

如果有人可以快速查看它,那将是非常好的,也许你能找到错误..

2 个答案:

答案 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