2014-01-07 3 views
1

какое решение? если мне нужно создать таблицу базы данных с именем из переменной? если я не могу использовать:создать таблицу базы данных с именем из переменной

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

Мой полный код выглядит следующим образом:

внутренний класс kurtianketa { общественных статическую строку 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(); 
    } 

и я получаю синтаксис Erorr Cose я не могу использовать @pav переменных в команде MySQL:

может кто-то explane мне, как я должен это делать? рять ж.

ответ

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); 
+0

так много: D что сработало – gogetter

+0

это работает ??? – zzlalani

+0

Да, проблема решена: D – gogetter

Смежные вопросы