我在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
答案 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();
}
}