我们可以在查询中使用变量作为表名吗?
本文关键字:变量 查询 我们 | 更新日期: 2023-09-27 18:12:03
在这里的代码中,我试图从数据库检索信息并将其存储在表中。在查询中,我使用了一个变量来指定一个表,我这样做是因为我想使用这一段代码来检索信息从各种表基于表名称的变量"a"包含,但当我执行这个它抛出我一个异常。请帮助…
MyOleDbConnection.Open();
string a = "login";
string query = string.Format("select Email,Username,PhoneNo,Department from '{1}' where Email='{0}'", editrecordtextBox.Text,a);
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
da = new OleDbDataAdapter(query, MyOleDbConnection.vcon);
da.Fill(dt);
注意-这只是代码的一部分,异常只发生在这段代码中。
您的代码实际上工作正常。
首先,去掉表名周围的单引号。这些标记文本,而不是标识符或名称。
我可以想象login
是一个您不能在SQL中用作纯文本的保留名称。根据不同的数据库,你可以引用你的表名,这样它就会被识别为一个名称,而不是一个保留词。
对于SQL-Server,它将与[
和]
完成:
string query = string.Format("select Email,Username,PhoneNo,Department from [{1}] where Email='{0}'", editrecordtextBox.Text,a);
如果你能给我们你的数据库,我们可以帮助你。
测试和工作的方式如下所示,如您所见,表名称为变量形式i,使用连接3节的查询
string query = "SELECT TOP 1 * FROM M" + TableName.ToString() + " ORDER BY ID
DESC";