为什么我的Update sql命令不起作用?

时间:2012-12-03 13:14:32

标签: c# asp.net mysql sql database

我在mysql中遇到sql命令问题。我有一个asp.net applcation并使用mysql数据库作为数据库。我想构建一个可以插入,更新,删除和选择数据库中的记录的类。我有更新命令的问题。在phpmyadmin它可以工作,但在我的班级不是:/

这是我的代码

public void UpdateRecord(string title, string firstname, string lastname, string company,
                               string timefrom, string timeto)
        {
            connection = new MySqlConnection();

            try
            {
                MySqlCommand command = connection.CreateCommand();

                //for testing
                string sql = "UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270";

                command.CommandText = sql;

                connection.Open();

                command.ExecuteNonQuery();

            }
            catch (Exception)
            {

            }
            finally
            {
                connection.Close();
            }
        }

此命令在phpmyadmin

中有效
UPDATE `tb_gast` 
SET 
FIRSTNAME='uu',
LASTNAME='uu',
COMPANY='uu'
WHERE ID=270

3 个答案:

答案 0 :(得分:2)

从表名'tb_gast'中删除引号。而不是:

UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270

试试这个:

UPDATE tb_gast SET FIRSTNAME = 'test' WHERE ID=270

答案 1 :(得分:1)

您在表名周围使用单引号,而不是反引号 可以使用组合键ALT+096

键入反引号
UPDATE `tb_gast` SET FIRSTNAME = 'test' WHERE ID=270

编辑:更深入地看待你的问题 注意到您声明了一个MySqlConnection并在没有任何连接字符串的情况下对其进行初始化 如果这是你的真实代码,难怪它不起作用

这是您的代码应该是

的方式
        using(connection = new MySqlConnection(GetConnectionString())
        {
            connection.Open();
            using(MySqlCommand command = connection.CreateCommand();
            {
                //for testing
                string sql = "UPDATE `tb_gast` SET FIRSTNAME='test' WHERE ID=270";
                command.CommandText = sql;
                command.ExecuteNonQuery();
            }
        }

其中GetConnectionString()应该是从某个永久存储器(如配置文件)返回连接字符串的方法

答案 2 :(得分:1)

尝试这个...

void UpdateRecord(string title,string firstname,string lastname,string company,                                string timefrom,string timeto)         {             connection = new MySqlConnection();

        try
        {
           string sql = "UPDATE tb_gast SET FIRSTNAME='test' WHERE ID=270";
           MySqlCommand command = new MySqlCommand(sql, connection);
           connection.Open();

            command.ExecuteNonQuery();

        }
        catch (Exception)
        {

        }
        finally
        {
            connection.Close();
        }
    }