如何在c#中编写mysql创建表查询

时间:2013-02-25 09:16:39

标签: c# mysql sql

如何在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

2 个答案:

答案 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]+")"