2012-05-09 63 views
0

今天我问了太多问题,但我还有一个问题。我正在尝试将图像保存到我的数据库中。我解决不了问题。当我尝试添加图像时,它表示参数字符串不能转换为BYTE []。其实我给字节[]作为参数value.I试图解决,但我找不到任何答案,也许你可以帮助我。这里是我的代码:字符串到字节数组转换c#

Stream fs = FileUpload1.PostedFile.InputStream; 
     BinaryReader br = new BinaryReader(fs); 
     Byte[] bytes = br.ReadBytes((Int32)fs.Length); 

     //insert the file into database 
     string strQuery = "INSERT INTO Books(Book_Name, Author_Name, Image,In_Lib) VALUES (@BN, @AN, @IM,@LIB)"; 
     SqlCommand cmd = new SqlCommand(strQuery); 
     string val1 = "" + TextBox1.Text; 
     string val2 = "" + TextBox2.Text; 
     cmd.Parameters.Add("@BN", SqlDbType.VarChar).Value = val1; 
     cmd.Parameters.Add("@AN", SqlDbType.VarChar).Value= val2; 
     cmd.Parameters.Add("@IM", SqlDbType.Binary).Value = bytes; 
     cmd.Parameters.Add("@LIB", SqlDbType.Binary).Value = "NO"; 
     InsertUpdateData(cmd); 
     lblMessage.ForeColor = System.Drawing.Color.Green; 
     lblMessage.Text = "File Uploaded Successfully"; 
+2

可能是问题就在这里:_cmd.Parameters.Add( “@ LIB”,SqlDbType.Binary).value的= “NO”; _ –

回答

4

此行是无效的:根据您的SQL

cmd.Parameters.Add("@LIB", SqlDbType.Binary).Value = "NO"; 

,它看起来像你打算使用VARCHAR存在。

+0

啊,我这么笨的感谢 –

3

你传递的字符串"NO"Binary参数@LIB值:

cmd.Parameters.Add("@LIB", SqlDbType.Binary).Value = "NO"; 

我想这是你的问题。