无法将参数值从字符串转换为byte []。 [英] Failed to convert parameter value from a string to a byte[].

查看:94
本文介绍了无法将参数值从字符串转换为byte []。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SqlCommand cmd = new SqlCommand("INSERT INTO CompRecd(ComNo, ComCat, ComSubCat, Whom, City, MobNo, PhoNo, EmailID, FileData, TimeStamp, officer, HouseNo, [from], CompSubCat2, Locality,FileDataType , Complaint , ipaddress) VALUES(@ComNo, @ComCat, @ComSubCat, @Whom, @City, @MobNo, @PhoNo, @EmailID, @FileData, getdate(),@officer,@HouseNo, @from, @CompSubCat2, @Locality, @FileDataType,@Complaint, @ipaddress)", cnn);
// Trans.Commit();
// SqlCommand cmd = new SqlCommand("INSERT INTO CompRecd(ComNo, ComCat, ComSubCat, Whom, City, MobNo, PhoNo, EmailID, FileData,TimeStamp, officer, HouseNo, [from], CompSubCat2, Locality ,FileDataType, Complaint , ipaddress) VALUES('" + compid + "','" + ds.Tables[0].Rows[0]["ComCat"].ToString() + "', '" + ds.Tables[0].Rows[0]["ComSubCat"].ToString() + "','" + ds.Tables[0].Rows[0]["Whom"].ToString() + "','" + ds.Tables[0].Rows[0]["City"].ToString() + "', '" + ds.Tables[0].Rows[0]["MobNo"].ToString() + "','" + ds.Tables[0].Rows[0]["PhoNo"].ToString() + "','" + ds.Tables[0].Rows[0]["EmailID"].ToString() + "','" + ds.Tables[0].Rows[0]["FileData"].ToString() + "', getdate(),'" + item.Value + "','" + ds.Tables[0].Rows[0]["HouseNo"].ToString() + "', '" + ds.Tables[0].Rows[0]["from"].ToString() + "','" + ds.Tables[0].Rows[0]["CompSubCat2"].ToString() + "','" + ds.Tables[0].Rows[0]["Locality"].ToString() + "','" + ds.Tables[0].Rows[0]["FileDataType"].ToString() + "','" + ds.Tables[0].Rows[0]["Complaint"].ToString() + "','" + ds.Tables[0].Rows[0]["ipaddress"].ToString() + "')", cnn);
 cmd.Transaction = Trans;


 cmd.Parameters.Add("@ComNo", SqlDbType.VarChar).Value = compid;
 cmd.Parameters.Add("@ComCat", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["ComCat"].ToString();
 cmd.Parameters.Add("@ComSubCat", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["ComSubCat"].ToString();
 cmd.Parameters.Add("@Whom", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["Whom"].ToString();
 cmd.Parameters.Add("@City", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["City"].ToString();
 cmd.Parameters.Add("@MobNo", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["MobNo"].ToString();
 cmd.Parameters.Add("@PhoNo", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["PhoNo"].ToString();
 cmd.Parameters.Add("@EmailID", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["EmailID"].ToString();
 cmd.Parameters.Add("@officer", SqlDbType.Int).Value = item.Value;
 cmd.Parameters.Add("@HouseNo", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["HouseNo"].ToString();
 cmd.Parameters.Add("@from", SqlDbType.Int).Value = ds.Tables[0].Rows[0]["from"].ToString();
 cmd.Parameters.Add("@CompSubCat2", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["CompSubCat2"].ToString();
 cmd.Parameters.Add("@Locality", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["Locality"].ToString();
 cmd.Parameters.Add("@FileData", SqlDbType.VarBinary).Value = ds.Tables[0].Rows[0]["FileData"].ToString();
 cmd.Parameters.Add("@FileDataType", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["FileDataType"].ToString();
 cmd.Parameters.Add("@Complaint", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["Complaint"].ToString();
 cmd.Parameters.Add("@ipaddress", SqlDbType.VarChar).Value = ds.Tables[0].Rows[0]["ipaddress"].ToString();
 cmd.ExecuteNonQuery();





我的尝试:



i希望将filedata(字符串byte [])存储到数据库中

filedata(列名)varbinary(max)数据类型到我的表中



What I have tried:

i want to store filedata(string byte[]) into database
filedata(column name) varbinary(max) datatype into my table

推荐答案

您正在为参数而不是二进制数据分配字符串数据。

请尝试以下操作 -

You are assigning string data to the parameter instead of binary data.
Try following-
cmd.Parameters.Add("@FileData", SqlDbType.VarBinary).Value = (byte[]) ds.Tables[0].Rows[0]["FileData"];





希望,它有助于:)



Hope, it helps :)


这篇关于无法将参数值从字符串转换为byte []。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆