【发布时间】:2015-09-21 05:11:17
【问题描述】:
我正在尝试使用 NpgsqlDataAdapter 填充 DataTable。我已将我的命令准备为
string commandString=@" drop table if exists tempdata;
create temp table tempdata as SELECT X X X X from (_query_);
SELECT x+x, xx, x-y INTO newTempTable FROM tempdata;
并使用以下函数将数据填充到数据表中
public DataTable Searchpg(string CommandString, NpgsqlParameter[] param)
{
DataTable ResultTable = new DataTable();
try
{
OpenConnection();
DbCommandpg.CommandText = CommandString;
DbCommandpg.Connection = DatabaseConnectionpg;
DbCommandpg.Parameters.Clear();
if (param != null)
{
DbCommandpg.Parameters.AddRange(param);
}
adappg.SelectCommand = DbCommandpg;
ResultTable.Clear();
adappg.Fill(ResultTable);
}
catch (Exception ex)
{
File.writeException(ex.Message, null);
throw ex;
}
finally
{
DatabaseConnectionpg.Close();
}
return ResultTable;
}
错误发生在adappg.Fill(ResultTable);
错误信息是 {"42P01: 关系 \"tempdata\" 不存在"}
我正在使用 NpgSql 版本 3.0.2.0 、VS 2013 和 Postgres 9.3
但是当我在 pgadmin 的 sql 编辑器中运行相同的查询时,它运行良好并根据需要返回结果。
更新:查询可以顺利使用 Npgsql 2.0.1.0,但不能使用 3.x
【问题讨论】:
-
你需要从哪个表创建tmp表?
-
这样试试
drop table if exists tempdata;create temp table tempdata as select p_invno,edate,code,product,quantity,unitprice,trancode from tbl,为什么以前创建Temp Table来填充数据表,但是可以直接用select语句来填充! -
我正在尝试将查询返回的结果中的数据插入临时表
-
显示准确的(从查询返回的结果)查询?
标签: c# sql npgsql dataadapter