解决方案 »
- udpclient关闭后马上启动出错
- C#怎样调用C++ Builder写的带窗体的DLL
- C#关闭窗口进程时提示
- 怎么用C#实现多客户端的CS模式的SOCKET程序?谢谢了!
- 请教怎么拖动控件的位置?
- gridview问题,高手请进!
- 为什么大量采用static ?
- C#打印队列ID问题
- [讨论,来者有分].net能移植到unix、linux平台上吗??windows(server)平台也太弱了!.net功能太弱,.net实现的系统经不住病毒的轻轻一
- webform中怎样动态配置与数据库的连接(生成DLL后不能修改连接配置)
- 多线程任务时,向程序界面发出信息,并且等待用户响应
- [C#] 这个JSON数据,有解析的类吗?
改成这样
cmd.Parameters.Add("?pic_data", MySqlDbType.VarBinary).Value = imgByte;
试试
但是提示说Add方法过时了,推荐使用AddWithValue,后台连SQL Server的时候一直用Add都挺好的,不知道是不是 mysql-connector的问题
两种方法我都有试过,都是报同样的错误
MySqlParameter param = new MySqlParameter();
param.MySqlDbType = MySqlDbType.VarBinary;
param.Value = imgByte;
cmd.Parameters.Add(param);两个方法,参数类型有些差异,过期的只是下面那个
public MySqlParameter Add(string parameterName, MySqlDbType dbType);
[Obsolete("Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)")]
public MySqlParameter Add(string parameterName, object value);
param.ParameterName = "?pic_name";
您上面说的
public MySqlParameter Add(string parameterName, MySqlDbType dbType);
[Obsolete("Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value)")]
public MySqlParameter Add(string parameterName, object value);
这里没有太明白,是指
public MySqlParameter Add(string parameterName, object value)
这个方法过期么,上面的
public MySqlParameter Add(string parameterName, MySqlDbType dbType)
这个方法没有过期?
还有一点就是过期是指什么,为什么我那么写不能实现呢?
谢谢!
cmd.Parameters.AddWithValue("?pic_data", MySqlDbType.VarBinary).Value = imgByte;
是调用了
public MySqlParameter Add(string parameterName, object value);
方法,将MySqlDbType.VarBinary转化成了一个object,当成了"?pic_data"的值
所以导致错误?
然后.value又将这个parameters的值赋值成了imgByte,这时候由于没有指定参数的类型为MySqlDbType.VarBinary
所以执行时会报错
这么理解对么?