gpt4 book ai didi

Npgsql BeginTextImport 尝试从文件导入(而不是从 STDIN)

转载 作者:行者123 更新时间:2023-12-02 02:48:37 32 4
gpt4 key购买 nike

我尝试通过 npgsql BeginTextImport 将数据从文件导入到 postgresql 表这是我的代码:

public Object Copy(String sSchemaAndTableName, String sFilePath, Boolean bIsImport)
{
Boolean bRet = true;

Object oResult = new Object();
NpgsqlConnection conn = new NpgsqlConnection(sConnectionString);
NpgsqlCommand cmd = new NpgsqlCommand();

try
{
conn.Open();
NpgsqlTransaction transaction = conn.BeginTransaction();

if (File.Exists(sFilePath))
{
try
{
if (bIsImport)
{
conn.BeginTextImport("COPY " + sSchemaAndTableName + " FROM '" + sFilePath + "';");
}
else
{
conn.BeginTextExport("COPY " + sSchemaAndTableName + " TO '" + sFilePath + "';");
}
}
catch (Exception e)
{
bRet = false;
transaction.Rollback();

throw e;
}
finally
{
if (bRet)
{
transaction.Commit();
}
}
}
else
{
throw new Exception("Plik nie istnieje: " + sFilePath);
}

}
catch (Exception ex)
{
MW.Core.Common.Objects.Exceptions.Items.Add(ex);
oResult = null;
}
finally
{
cmd.Dispose();

conn.Close();
conn.Dispose();
}

return oResult;
}

当我运行这个时,我收到错误 - 查看屏幕:

when i use myapp directory

when i use postresql server data directory - this works when i use pgadmin but from my app via npgsql not

可以这样做吗?

最佳答案

PostgreSQL 的“从文件复制”功能并不像您想象的那样;它不会从客户端端(运行 Npgsql)的文件导入数据,而是从服务器端(运行 PostgreSQL)的文件导入数据。换句话说,您可以将一个文件放在 PostgreSQL 服务器上并告诉 PostgreSQL 导入它。

如果要在客户端计算机上导入文件,则需要在 C# 中打开它,从中读取文件并将其写入 BeginTextImport 返回的 TextWriter。

关于Npgsql BeginTextImport 尝试从文件导入(而不是从 STDIN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33612897/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com