使用变量名创建数据库表

时间:2014-01-07 11:56:11

标签: mysql variables command

解决方案是什么?如果我需要从变量创建名称数据库表?如果我不能使用:

MySqlCommand cmd = new MySqlCommand("CREATE TABLE @tablename;", con);

我的完整代码如下:

内部类kurtianketa     {         public static string pavadinimas         {             得到;             组;         }     }

private void button1_Click(object sender, EventArgs e)
{
    kurtianketa.pavadinimas = textBox1.Text.ToString();
    MySqlConnection con = new MySqlConnection("database=kursinis_anketa;server=localhost;uid=root;pwd=; Allow User Variables=True");

    MySqlCommand dbCmd2 = new MySqlCommand("INSERT INTO anketos (pavadinimas) VALUES ('" + textBox1.Text + "')", con);
    MySqlCommand dbCmd = new MySqlCommand("CREATE TABLE @pav ( qnr varchar(255), parametras varchar(255), ats1 varchar(255), ats2 varchar(255), ats3 varchar(255), ats4 varchar(255))", con);

    dbCmd.Parameters.Add(new MySqlParameter("@pav", kurtianketa.pavadinimas));

    try
    {

        con.Open();
        dbCmd.ExecuteNonQuery();
        dbCmd2.ExecuteNonQuery();

        MySqlDataAdapter DataAdapter1 = new MySqlDataAdapter(dbCmd);
        MySqlCommandBuilder cb = new MySqlCommandBuilder(DataAdapter1);


    }
    catch (MySqlException ex)
    {
        MessageBox.Show(ex.Message, "problema su duomenu baze");
    }
    finally
    {
        con.Close();
    }

我得到sintax erorr cose我不能在mysql命令中使用@pav变量:

有人可以解释我该怎么办? THEX。

1 个答案:

答案 0 :(得分:0)

为什么不直接将表名连接到查询的字符串中?

MySqlCommand dbCmd = new MySqlCommand("CREATE TABLE " + kurtianketa.pavadinimas + " ( 
                                         qnr varchar(255), 
                                         parametras varchar(255), 
                                         ats1 varchar(255), 
                                         ats2 varchar(255), 
                                         ats3 varchar(255), 
                                         ats4 varchar(255)
                                     )", con);