Guest User

Untitled

a guest
Jul 3rd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using NuoDb.Data.Client;
  4.  
  5. namespace NuoDbBinaryRepro
  6. {
  7. internal class Program
  8. {
  9. public static void Main()
  10. {
  11. using (var con = new NuoDbConnection("Server=localhost;Database=Test;User=dba;Password=dba;Schema=test;"))
  12. {
  13. con.Open();
  14.  
  15. using (var cmd = con.CreateCommand())
  16. {
  17. cmd.CommandText = "DROP TABLE IF EXISTS BinaryTest;";
  18. cmd.ExecuteNonQuery();
  19. }
  20.  
  21. using (var cmd = con.CreateCommand())
  22. {
  23. cmd.CommandText = "CREATE TABLE BinaryTest (BinaryColumn VARBINARY(100));";
  24. cmd.ExecuteNonQuery();
  25. }
  26.  
  27. using (var cmd = con.CreateCommand())
  28. {
  29. cmd.CommandText = "INSERT INTO BinaryTest VALUES (?);";
  30. cmd.Parameters.Add(Encoding.UTF8.GetBytes("Hello world!"));
  31. cmd.ExecuteNonQuery();
  32. }
  33.  
  34. using (var cmd = con.CreateCommand())
  35. {
  36. cmd.CommandText = "SELECT BinaryColumn FROM BinaryTest;";
  37. using (var dr = cmd.ExecuteReader())
  38. {
  39. if (dr.Read())
  40. {
  41. var ordinal = dr.GetOrdinal("BinaryColumn");
  42. // This call is requried to for the declaredColumnTypes variable to be populated.
  43. // In my testing, this seems to happen automatically seemingly randomly.
  44. var type = dr.GetFieldType(ordinal);
  45.  
  46. // This call errors out with: System.InvalidCastException: Object must implement IConvertible.
  47. var bytes = (byte[]) dr["BinaryColumn"];
  48. Console.WriteLine(Encoding.UTF8.GetString(bytes));
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }
Add Comment
Please, Sign In to add comment