Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- using NuoDb.Data.Client;
- namespace NuoDbBinaryRepro
- {
- internal class Program
- {
- public static void Main()
- {
- using (var con = new NuoDbConnection("Server=localhost;Database=Test;User=dba;Password=dba;Schema=test;"))
- {
- con.Open();
- using (var cmd = con.CreateCommand())
- {
- cmd.CommandText = "DROP TABLE IF EXISTS BinaryTest;";
- cmd.ExecuteNonQuery();
- }
- using (var cmd = con.CreateCommand())
- {
- cmd.CommandText = "CREATE TABLE BinaryTest (BinaryColumn VARBINARY(100));";
- cmd.ExecuteNonQuery();
- }
- using (var cmd = con.CreateCommand())
- {
- cmd.CommandText = "INSERT INTO BinaryTest VALUES (?);";
- cmd.Parameters.Add(Encoding.UTF8.GetBytes("Hello world!"));
- cmd.ExecuteNonQuery();
- }
- using (var cmd = con.CreateCommand())
- {
- cmd.CommandText = "SELECT BinaryColumn FROM BinaryTest;";
- using (var dr = cmd.ExecuteReader())
- {
- if (dr.Read())
- {
- var ordinal = dr.GetOrdinal("BinaryColumn");
- // This call is requried to for the declaredColumnTypes variable to be populated.
- // In my testing, this seems to happen automatically seemingly randomly.
- var type = dr.GetFieldType(ordinal);
- // This call errors out with: System.InvalidCastException: Object must implement IConvertible.
- var bytes = (byte[]) dr["BinaryColumn"];
- Console.WriteLine(Encoding.UTF8.GetString(bytes));
- }
- }
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment