1

在代码中,我试图从数据库中检索信息并将其存储在表中。在查询中,我使用了一个变量来指定一个表,我这样做是因为我想使用这一段代码根据变量“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);

注意-这只是代码的一部分,仅在此代码中发生异常。

4

2 回答 2

3

您的代码实际上工作正常。

首先,删除表名周围的单引号。这些标记文本,而不是标识符或名称。

我可以想象这login是一个不能在 SQL 中用作纯文本的保留名称。根据数据库,您可以引用您的表名,以便将其识别为名称,而不是保留字。

对于 SQL-Server,它将使用[and完成]

string query = string.Format("select Email,Username,PhoneNo,Department from [{1}] where Email='{0}'", editrecordtextBox.Text,a);

如果您愿意将您的数据库提供给我们,我们可以提供帮助。

于 2013-05-04T17:45:16.727 回答
0

测试和工作的方式如下所示,表名是变量形式我用连接 3 部分一起进行查询

string query = "SELECT TOP 1 * FROM M" + TableName.ToString() + " ORDER BY ID 
DESC";
于 2017-10-11T11:19:56.390 回答