1

如何在 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 服务器版本相对应的手册,以在第 1 行的 ''name' varchar(100) NOT NULL default,PRIMARY KEY (id) 1' 附近使用正确的语法

4

2 回答 2

2

您可以像这样使用Mig#,而不是直接使用 SQL :

        var schema = new DbSchema(ConnectionString, DbPlatform.MySql5);
        schema.Alter(db => db.CreateTable("first")
            .WithPrimaryKeyColumn(a.Colunns[0], DbType.Int32).AsIdentity()
            ...);
于 2015-12-23T15:10:02.097 回答
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]+")"
于 2013-02-25T09:18:09.067 回答