c# - DataAdapter throws error while filling DataTable -


i trying fill datatable using npgsqldataadapter. have prepared command

string commandstring=@" drop  table if exists tempdata;   create temp table tempdata  select x x x x (_query_); select x+x, xx, x-y newtemptable tempdata; 

and using below function fill data in datatable

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;     }         {         databaseconnectionpg.close();     }     return resulttable; } 

error occurs @ adappg.fill(resulttable);

and error message {"42p01: relation \"tempdata\" not exist"} enter image description here

i using npgsql version 3.0.2.0 , vs 2013 , postgres 9.3

but when run same query in sql editor in pgadmin, runs finely , return result per desired.

update: query works smoothly npgsql 2.0.1.0 not 3.x

this known issue starting npgsql 3.x, described here: https://github.com/npgsql/npgsql/issues/641.

in nutshell, cannot create entity (e.g. table) , use entity inside same npgsqlcommand - send create table , select in separate commands.

see issue above explanation, has pretty low-level details on how npgsql communicates postgresql. unfortunately it's unlikely we'll fix soon.


Comments

Popular posts from this blog

java - Date formats difference between yyyy-MM-dd'T'HH:mm:ss and yyyy-MM-dd'T'HH:mm:ssXXX -

c# - Get rid of xmlns attribute when adding node to existing xml -