从文本框值中查询SQLite表名
本文关键字:查询 SQLite 表名 文本 | 更新日期: 2023-09-27 18:01:34
我想根据用户输入的文本框值或声明的字符串值在SQLite中创建一个表名。例如:
cmd.CommandText = @"CREATE TABLE '"+Machine_Name.Text+"' AS (Date, Cal_Date) VALUES (@Date, @CalDate)";
我在AS之前收到一个恒定错误的换行符。我知道这可能是糟糕的数据库设计,但它将有助于我这样做。
您的查询语法似乎混淆了。
如果你想要create table
,你必须提供列规范(名称和数据类型),或者如果你使用create table as
,一个有效的select
查询必须用来定义列名/类型。
values
子句语句的最后一部分是INSERT
的有效形式,但不是create table
的有效形式。
创建表的语法如下
cmd.CommandText = @"CREATE TABLE '" + newTable + "'" +
"(DATE DATETIME, CAL_DATE VARCHAR(256))";
这当然假设你的字段是一个DateTime和一个VarChar。
换句话说,在表名之后,在括号之间,列的名称和它们的数据类型。
我还建议特别注意用户为新表名键入的值。这种键入任何东西的自由可能是非常危险的,当恶意用户试图创建Sql注入攻击时,它是基本的构建块。
string ct = "Create table '" + Textbox1.Text +"'(Column1, Column2)";
SQLiteCommand createCommand1 = new SQLiteCommand(ct, sqliteCon);
createCommand1.ExecuteNonQuery();
sqliteCon.Close();
MessageBox.Show("Data Saved");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}