-1

我在 mysql 中的 sql 命令有问题。我有一个 asp.net 应用程序并使用 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
4

3 回答 3

2

删除表名中的引号'tb_gast'。代替 :

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

试试这个:

UPDATE tb_gast SET FIRSTNAME = 'test' WHERE ID=270
于 2012-12-03T13:16:12.453 回答
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() 应该是某种方法,可以从配置文件等永久存储中返回连接字符串

于 2012-12-03T13:19:33.920 回答
1

试试这个...

void UpdateRecord(字符串标题,字符串名字,字符串姓氏,字符串公司,字符串 timefrom,字符串 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();
        }
    }
于 2012-12-03T13:46:51.977 回答