Я пытаюсь заполнить DataTable, используя NpgsqlDataAdapter. Я подготовил свою команду, какDataAdapter вызывает ошибку при заполнении DataTable
string [email protected]" 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;
И используя ниже функции для заполнения данных в 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;
}
finally
{
DatabaseConnectionpg.Close();
}
return ResultTable;
}
ошибка возникает при adappg.Fill(ResultTable);
И сообщение об ошибке { "42P01: отношение \ "tempdata \" не существует}}
Я использую NpgSql версии 3.0.2.0, VS 2013 и Postgres 9.3
НО когда я запустить тот же запрос в редакторе SQL в pgadmin, он работает точно и возвращать результат в соответствии с желательно.
UPDATE: Запрос работает плавно Npgsql 2.0.1.0
но не с 3.x
Из какой таблицы вам нужно создать таблицу tmp? –
Попробуйте этот путь 'drop table if exists tempdata; создайте временную таблицу tempdata как выберите p_invno, edate, code, product, quantity, unitprice, trancode from tbl', почему вы использовали для создания таблицы Temp для заполнения datatable, Вы можете напрямую использовать инструкцию select для заполнения! –
Я пытаюсь вставить данные в таблицу temp из результата, возвращаемого запросом – Bunzitop