我认为这里的问题是我的SQL语法,但我不确定,需要一双新眼睛来检查它。这是我用来连接然后插入DB的代码:
OdbcConnection datConn = CreateDataConn();
datConn.Open();
OdbcCommand comm = new OdbcCommand();
comm.CommandText = "INSERT INTO userdata (key, secretkey, uid) VALUES ('" + token + "', '" + secret + "', '" + twitterid + "');";
comm.Connection = datConn;
comm.ExecuteNonQuery();
datConn.Close();
这是CreatDataConn()方法:
private OdbcConnection CreateDataConn()
{
OdbcConnection dbConn = new OdbcConnection();
dbConn.ConnectionString = "Dsn=MySQL;database=twittertest;option=0;port=0;server=localhost;uid=root;pass=Red!4jedi";
return dbConn;
}
我为数据库创建了一个DSN,该数据库托管在我的计算机上。
当我运行应用程序时,我收到此错误:
错误[42000] [MySQL] [ODBC 3.51驱动程序] [mysqld-5.1.51-community]您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'key,secretkey,uid'附近使用正确的语法VALUES(第1行的'127090765-i3aZl71LPSVUCPZs9kHSYeBli0vWpbq0BaM1roYC'
但是对于我的生活,我无法弄清楚我的语法有什么问题...这很简单,但同样,我需要一双新眼睛看这个。
答案 0 :(得分:0)
key
可能是一个保留词。在MySQL中,你可以通过在列名称周围添加反引号(`)来解决这个问题(所以'`key`'而不是'key'),但你应该尽量不要将保留字作为实体名称。