解决方法是什么?如果我需要使用变量名称创建数据库表?如果我不能使用:
MySqlCommand cmd = new MySqlCommand("CREATE TABLE @tablename;", con);
我的完整代码如下:
内部类 kurtianketa { 公共(public)静态字符串 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 错误,因为我不能在 mysql 命令中使用 @pav 变量:
有人可以解释我应该怎么做吗?
最佳答案
为什么不直接将表名连接到查询字符串中呢?
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);
关于mysql - 使用变量名称创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20971017/