Author: Dave Page (dpage@postgresql.org)
Release Date: 12 April 2002
Description: Example based Mini-Howto on Accessing PostgreSQL from C#
This document provides some sample code to get you started with C# & PostgreSQL.
Requirements to get the code to work:
CREATE TABLE vbtest( id serial, data text, accessed timestamp ); INSERT INTO csharptest(data, accessed) VALUES('Rows: 1', now()); INSERT INTO csharptest(data, accessed) VALUES('Rows: 2', now()); INSERT INTO csharptest(data, accessed) VALUES('Rows: 3', now());
using System; using System.Data; using Microsoft.Data.Odbc; class psqlODBC_Howto { [STAThread] static void Main(string[] args) { // Setup a connection string string szConnect = "DSN=dsnname;" + "UID=postgres;" + "PWD=********"; // Attempt to open a connection OdbcConnection cnDB = new OdbcConnection(szConnect); // The following code demonstrates how to catch & report an ODBC exception. // To keep things simple, this is the only exception handling in this example. // Note: The ODBC data provider requests ODBC3 from the driver. At the time of // writing, the psqlODBC driver only supports ODBC2.5 - this will cause // an additional error, but will *not* throw an exception. try { cnDB.Open(); } catch (OdbcException ex) { Console.WriteLine (ex.Message + "\n\n" + "StackTrace: \n\n" + ex.StackTrace); // Pause for the user to read the screen. Console.WriteLine("\nPressto continue..."); Console.Read(); return; } // Create a dataset DataSet dsDB = new DataSet(); OdbcDataAdapter adDB = new OdbcDataAdapter(); OdbcCommandBuilder cbDB = new OdbcCommandBuilder(adDB); adDB.SelectCommand = new OdbcCommand( "SELECT id, data, accessed FROM csharptest", cnDB); adDB.Fill(dsDB); // Display the record count Console.WriteLine("Table 'csharptest' contains {0} rows.\n", dsDB.Tables[0].Rows.Count); // List the columns (using a foreach loop) Console.WriteLine("Columns\n=======\n"); foreach(DataColumn dcDB in dsDB.Tables[0].Columns) Console.WriteLine("{0} ({1})", dcDB.ColumnName, dcDB.DataType); Console.WriteLine("\n"); // Iterate through the rows and display the data in the table (using a for loop). // Display the data column last for readability. Console.WriteLine("Data\n====\n"); for(int i=0;i to continue..."); Console.Read(); } }