[Mono-devel-list] Connecting to a db using OleDbConnection
Ankit Jain
radical at gmail.com
Mon Jan 3 12:48:46 EST 2005
Hi,
I'm trying to compile a simple test program available at
http://www.go-mono.com/oledb.html to connect to a db. I believe
OleDbConnection uses libgda as the backend to make the actual
connection to the database. My installation of libgda is working fine.
I've tried adding entries for a PostgreSQL and a MySQL server in the
config file and it works fine(tested via gda-test, it can connect ..
fetch data etc).
But the C# program is not being able to connect. The code:
using System;
using System.Data;
using System.Data.OleDb;
public class Test
{
public static void Main(string[] args)
{
try{
// there is a libgda PostgreSQL provider
string connectionString =
"Provider=PostgreSQL;" +
"Addr=127.0.0.1;" +
"Database=test;" +
"User ID=postgres;" +
"Password=";
IDbConnection dbcon;
dbcon = new OleDbConnection(connectionString);
dbcon.Open();
//IDbCommand dbcmd = dbcon.CreateCommand();
string sql =
"SELECT firstname, lastname " +
"FROM employee";
IDbCommand dbcmd = new OleDbCommand(sql,
(OleDbConnection)dbcon);
Console.WriteLine("CmdText= {0}\n", dbcmd.CommandText);
//dbcmd.CommandText = sql;
IDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()) {
string FirstName = (string) reader["firstname"];
string LastName = (string) reader["lastname"];
Console.WriteLine("Name: " +
FirstName + " " + LastName);
}
// clean up
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbcon.Close();
dbcon = null;
}catch(Exception e){
Console.WriteLine("Exception : {0}\n", e.Message);
}
}
}
And this is the output:
Unhandled Exception: System.InvalidOperationException: State != Open
in <0x00088> System.Data.OleDb.OleDbCommand:ExecuteReader
(System.Data.CommandBehavior)
in <0x00048> (wrapper remoting-invoke-with-check)
System.Data.OleDb.OleDbCommand:ExecuteReader
(System.Data.CommandBehavior)
in <0x0000f> System.Data.OleDb.OleDbCommand:ExecuteReader ()
in <0x0003b> (wrapper remoting-invoke-with-check)
System.Data.OleDb.OleDbCommand:ExecuteReader ()
in <0x0000d> System.Data.OleDb.OleDbCommand:System.Data.IDbCommand.ExecuteReader
()
in [0x00037] (at /home/radical/dev/mono/Test.cs:45) Test:Main (string[])
Basically, its not being able to make the actual connection, but it
doesnt give the error at dbcon.Open(). It throws the exception when I
try to execute a query..
What could be the problem here? What am i missing?
Regards,
-Anks
More information about the Mono-devel-list
mailing list