我想问下,我的SQL 使用参数话,其中有1个参数是binary(16)类型的当我从C# 传递参数时候,如何传递给这个数据类型的列
我试过了使用string
bytes[] 都不可以e.g:SqlParameter pbinCode = new SqlParameter("@binarycode", SqlDbType.Binary,16);pbinCode .value="aaaa";

pbinCode. value = 一个bytes[], 这个bytes[].length=16都不可以

解决方案 »

  1.   

     private static void Add()
            {
                BitArray ba = new BitArray(8);
                ba.Set(0, false);
                ba.Set(1, false);
                ba.Set(2, false);
                ba.Set(3, true);
                ba.Set(4, false);
                ba.Set(5, false);
                ba.Set(6, false);
                ba.Set(7, false);
                byte[] bt = new byte[1];
                ba.CopyTo(bt, 0);
                string str = "server=.;database=Test;user=sa";
                string qstr = "INSERT INTO [Test].[dbo].[Teacher] VALUES(7,'令狐冲',@Code)";
                Console.WriteLine(qstr);
                using (SqlConnection con = new SqlConnection(str))
                {
                    con.Open();
                    SqlCommand cmd = new SqlCommand(qstr, con);
                    cmd.Parameters.AddWithValue("@Code", bt);
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
            }
      

  2.   

    SqlParameter pbinCode = new SqlParameter("@binarycode", SqlDbType.Binary,16);不能直接给字符串,要传一个byte array给它
    //pbinCode .value="aaaa"; 
      

  3.   

    用byte[]就可以的SqlParameter pbinCode = new SqlParameter("@binarycode", SqlDbType.Binary,16);pbinCode.value=Encoding.Default.GetBytes("要传递的字符串");