如何在c#中为mysql数据库创建表查询..
MySqlConnection con = new MySqlConnection("Server=localhost;Database=demo_test;UID=root;Password= ");
MySqlCommand acmd = new MySqlCommand("CREATE TABLE first (" + a.Columns[0] + " int(20) NOT NULL auto_increment,'" + a.Columns[1].ToString() + "' varchar(100) NOT NULL default,PRIMARY KEY (" + a.Columns[0]+") 1", con);
con.Open();
acmd.ExecuteNonQuery();
它给了我一个错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 ''name'varchar(100)附近NOT NULL默认值,PRIMARY KEY(id)1'在行 1
答案 0 :(得分:2)
您可以使用Mig#,而不是直接与SQL战斗:
var schema = new DbSchema(ConnectionString, DbPlatform.MySql5);
schema.Alter(db => db.CreateTable("first")
.WithPrimaryKeyColumn(a.Colunns[0], DbType.Int32).AsIdentity()
...);
答案 1 :(得分:1)
这是因为您使用单引号包装列名称,将值转换为字符串而不是标识符。删除单引号,它将起作用。
string query = @"CREATE TABLE first (" + a.Columns[0] + " int(20) NOT NULL auto_increment, "
+ a.Columns[1].ToString() + " varchar(100) NOT NULL default,
PRIMARY KEY (" + a.Columns[0]+")"