Hi,
I'm having a problem, I'm using PostgreSQL V8.3.3-1, Npgsql and Visual studio 2008 c#.
I'm passed a dictionary of key, value (key been a string, value been an object). The code works fine with key and value both been strings but postgresql doesn't seem to like it when the value is an object. How can I correct my code to work when passed an object? I realise that rowsaffected is currently only storing the first value, that's fine. I just want to be able to run a query using an object datatype for now.
current error is: "InvalidCastExc eption is unhandled by user code"
sql is a query
I hope I placed this on the correct forum. Most of the code is c# but I feel the problem lies with Postgresql...
Thanks
I'm having a problem, I'm using PostgreSQL V8.3.3-1, Npgsql and Visual studio 2008 c#.
I'm passed a dictionary of key, value (key been a string, value been an object). The code works fine with key and value both been strings but postgresql doesn't seem to like it when the value is an object. How can I correct my code to work when passed an object? I realise that rowsaffected is currently only storing the first value, that's fine. I just want to be able to run a query using an object datatype for now.
current error is: "InvalidCastExc eption is unhandled by user code"
sql is a query
Code:
"SELECT username FROM users WHERE age = :Value1"
Code:
public static string GetSql(string sql, Dictionary<string, object> d)
{
string connection = System.Configuration.ConfigurationManager.ConnectionStrings["POSTGRESQL_LOCAL"].ConnectionString;
using (NpgsqlConnection conn = new NpgsqlConnection(connection))
{
conn.Open();
using (NpgsqlCommand command = new NpgsqlCommand(sql, conn))
{
int i = 0;
foreach (KeyValuePair<string, object> kvp in d)
{
command.Parameters.Add(new NpgsqlParameter(kvp.Key, DbType.Object));
command.Parameters[i].Value = kvp.Value;
i++;
}
string rowsaffected = "error: No data";
using (NpgsqlDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
rowsaffected = dr[0].ToString();
}
}
conn.Close();
return rowsaffected;
}
}
}
Thanks