C〓〓〓はPostGreSQLデータベースにアクセスする方法

4357 ワード

私はPostGreSQLについては一知半解で、この過程を記録するのは今後マイクロソフトの技術の方向の人が同じような需要に出会うなら、比較的直接的な参考ができると希望しています。よく知らない知識の分野では、いつも捜索エンジンが私を助けてくれます。PostGreSQLデータベースとデータ形態を初歩的に理解する
まず、PostGreSQLのデータベースと私が取得したいデータの形態を見たいですが、LinuxとPostGreSQLの二つのキーワードはよく分かりません。PostGreSQLデータベースに接続できるWindowsクライアントを探してみました。

その電源プラグのロゴをクリックして、サーバー接続を新規に作成できます。
名前はPGAdminクライアントの表示名で、カスタマイズできます。SSLはこんなに多くのオプションがあります。何をするかよく分かりません。とにかく私が選んだのは許可します。

ポート番号は、デフォルトのPostGreSQLのポート番号は5432です。もちろん変更されます。他のポート番号にカスタマイズしてすべてクリックして確定したら、データベースが見えます。私はお客さんの現場にいません。PostGreSQLの倉庫につながらないので、下では写真を撮ることができません。

PGAdminでは、検索文を書くことができます。権限があれば、戻りの結果集が見られます。ウィンドウを開けてみましたが、検索文を書いてみました。Select top 10*from Tablebjが実行しています。結果集のウィンドウが文法的に間違っていることを発見しました。下のグループの兄弟に聞いてみたら、正しい書き方はこのようになるべきです。Select*from Tablebj limit 5語はsql文とは違いがあります。実行して、ヒントが見つからないオブジェクト「TableObj」はTable Objの上のコンテナ「ConttainerObj」を見つけました。修正は次のようにSELECT*FROM ContinerObj.Table Obj limit 5クリックして実行して、ついに結果集を見ました。sqlserverに対しては、PGAdminの結果セットは、インターフェースのヘッダが2行あり、1行はフィールド名で、1行はフィールドのデータタイプであることを示しています。これはとても愛があります。PostGreSQLのクエリ文では、大文字と小文字は敏感ではない。PostgreSql文法のルールについて、CSDNで「PostgreSql文法詳細マニュアル」を見つけましたが、こいつは三つの資源が必要です。はい、PostGreSQLデータベースを見ました。次はC〓〓コードテストをノックしてPostGreSQLのデータを取りに行きます。C葃接続PostGreSQLデータベース
Npgsqlというものがあります。PostgreSQLの一つです。NETデータ提供プログラムです。まずそれをダウンロードする必要があります。実際には2つのdllを引用するだけです。

私のテストを経て、Npgsql.dllだけを引用したら、あなたのプログラムが実行されたらエラーが発生します。Mono.Security.dllに対する依存項が見つからないように注意してください。この二つのdllを引用して、あなたのコードにusingを追加する必要があります。using Npgsqlコードは簡単です。文字列をつづる文字列を書いて、2を比較します。txtなどはWinformのtextbox

///
///
///
///
private string getConnectStr()
{
   StringBuilder sb = new StringBuilder();
   string str = string.Empty;
   sb.Append("Server=");
   sb.Append(txtServer.Text);
   sb.Append(";Port=");
   sb.Append(txtPort.Text);
   sb.Append(";User Id=");
   sb.Append(txtUID.Text);
   sb.Append(";Password=");
   sb.Append(txtPassword.Text);
   sb.Append(";Database=");
   sb.Append(txtDB.Text);
   sb.Append(";");
   str = sb.ToString();
   return str;
}
です。実際にデータベース接続列はこのようなフォーマットです。

"Server=192.168.1.100;Port=5432;UserId=mike;Password=secret;Database=mikedb;"

///
/// PostGreSQL
///
/// Success/Failure
private string TestConnection()
{
   string str = getConnectStr();
   string strMessage = string.Empty;
   try

   {
       NpgsqlConnection conn = new NpgsqlConnection(str);
       conn.Open();
       strMessage = "Success";
       conn.Close();
   }
   catch
   {
       strMessage = "Failure";
   }
   return strMessage;
}

///
/// ( try、catch)
///
private void TestGetData()
{
   IDbConnection dbcon;
   dbcon = newNpgsqlConnection(getConnectStr());
   dbcon.Open();
   IDbCommand dbcmd = dbcon.CreateCommand();
   dbcmd.CommandText = " SELECT * FROM ContainerObj.TableObj limit 5";
   IDataReader dr = dbcmd.ExecuteReader();
   string strResult = string.Empty;
   while (dr.Read())
   {
       stringstrRecord_Time_Int = dr[0].ToString();
       stringstrIP = dr[1].ToString();
       stringstrFullPath = dr[2].ToString();
       stringstrUpload_Size = dr[3].ToString();
       stringstrDownLoad_Size = dr[4].ToString();
       strResult += "record_time_int: " + strRecord_Time_Int+ " | ip:" + strIP + " | fullpath:" +strFullPath + " | upload_size:" +strUpload_Size + " | download_size:"+ strDownLoad_Size + "
";
   }
   dr.Close();
    dr = null;
   lblRes.Text = strResult;
}
Formは簡単で、テスト機能だけです。下のスクリーンショットは前に現場で切ったものです。処理して、いくつかの情報を隠しました。