我在网上看到很多人遇到这个问题,我还没有找到解决我问题的解决方案。
我这里有这个代码:
byte[] bytes = btnBrowse.FileBytes;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["shbndbConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("Insert Into tblProject (id,updateDate,statusUpdate,attachment) Values (@projectId,GETDATE(),@statusUpdate,@file)", conn);
cmd.Parameters.Add("@file",SqlDbType.VarBinary).Value = bytes;
cmd.Parameters.Add("@statusUpdate",SqlDbType.NVarChar).Value = txtStatusUpdate;
cmd.Parameters.Add("@projectId",SqlDbType.Int).Value = lblProjectId.Text;
//cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
if (cmd.ExecuteNonQuery() >= 1)
{
lblDone.Text = "Success";
lblDone.Visible = true;
}
conn.Close();
现在我一直收到这个错误:
对象必须实现IConvertible。
据我所知,这是因为我试图在表格中插入一个数组,但我去的每个网站都说我插入它的方式是正确的。
为什么我收到此错误?
我的表格中的VARBINARY
列长度为
答案 0 :(得分:3)
异常的原因很可能是这一行,您尝试将整个TextBox指定为参数值:
cmd.Parameters.Add("@statusUpdate",SqlDbType.NVarChar).Value = txtStatusUpdate;
使用txtStatusUpdate.Text
从TextBox中获取实际值。
cmd.Parameters.Add("@statusUpdate",SqlDbType.NVarChar).Value = txtStatusUpdate.Text;