My first post...so here goes.

I am attempting to port a large enterprise application to mono, and have been 
pleasantly surprised at how well most things work.

I am hitting one snag executing a SqlCommand that includes a SqlParameter whose 
data type is SqlDbType.TinyInt (have also tried Int), and whose value is 
DBNull.Value.

I just installed the latest monodevelop last Friday (v5.7).  Any fix or 
workaround would be appreciated!

:::Repro C# code:

      private static void SqlTest()
      {
         using ( var con = new SqlConnection( "Application Name=MyApp;Data 
Source=machinename;Database=MGLatest_Mono;User 
ID=sa;Pwd=xxx;MultipleActiveResultSets=True" ) )
         {
            con.Open();

            using ( var cmd = con.CreateCommand() )
            {
               cmd.CommandType = System.Data.CommandType.StoredProcedure;
               cmd.CommandText = "DoTest";
               cmd.Parameters.Add( new SqlParameter( "@byte", 
System.Data.SqlDbType.TinyInt ) );
               cmd.Parameters[ "@byte" ].Direction = 
System.Data.ParameterDirection.Output;
               // cmd.Parameters[ "@byte" ].Value = (byte)0;  // THIS WORKS
               cmd.Parameters[ "@byte" ].Value = DBNull.Value;  // THIS FAILS 
(as does null, or omitting)
               cmd.ExecuteNonQuery();
               Console.WriteLine( cmd.Parameters[ "@byte" ].Value );
            }
         }
      }

:::Repro Store Proc:

create proc DoTest(@byte tinyint output)
as
set @byte = 238

:::Exception:
Unhandled Exception:
System.Data.SqlClient.SqlException: The incoming tabular data stream (TDS) 
remote procedure call (RPC) protocol stream is incorrect. Parameter 1 
("@byte"): Data type 0x26 has an invalid data length or metadata length.
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to