前提・実現したいこと
Exportボタン押下時、Postgresに接続し、User TBLのデータをC:\tempフォルダにCSV出力する
発生している問題・エラーメッセージ
Npgsql.PostgresExeption:'42602:relative path not allowed for Copy to file'
該当のソースコード
C#
1 2using System; 3using System.Collections.Generic; 4using System.ComponentModel; 5using System.Data; 6using System.Drawing; 7using System.Linq; 8using System.Text; 9using System.Threading.Tasks; 10using System.Windows.Forms; 11using System.Data.SqlClient; 12using Npgsql; 13 14namespace ExportWindow 15{ 16 public partial class Form1 : Form 17 { 18 public Form1() 19 { 20 InitializeComponent(); 21 } 22 23 private void button1_Click(object sender, EventArgs e) 24 { 25 26 //DB接続 27 NpgsqlConnection conn = new NpgsqlConnection(); 28 29 //DB接続情報 30 conn.ConnectionString = @"Server=xx.xx.xx.xx; 31 Port=5432; 32 User Id=postgres; 33 Password=xxx; 34 Database=xx;"; 35 try 36 { 37 // 接続確認 38 conn.Open(); 39 Console.WriteLine("DBに接続しました。"); 40 41 //SQL文と接続先を引数に入れる 42 NpgsqlCommand cmd = new NpgsqlCommand("COPY user TO 'C:\temp\user.csv' WITH CSV DELIMITER ',';", conn); 43 44 //クエリ実行 45 NpgsqlDataReader reader = cmd.ExecuteReader(); 46 47 //例外処理 48 catch (Exception e) 49 { 50 Console.Write("エラーが発生しました。"); 51 } 52 finally 53 { 54 // DB接続解除。 55 conn.Close(); 56 Console.WriteLine("DB接続を解除しました。"); 57 } 58 } 59 } 60} 61 62
試したこと
「相対パスはファイルにコピーできない」というエラーが出ていたので、出力先のフォルダを色々と変更してみましたが、結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Visual Studio 2017 V15.9.5
Postgres9.6
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/25 02:43