【发布时间】:2014-09-12 11:06:20
【问题描述】:
我正在开发一个在 C# 中的两个数据库之间传输数据的应用程序。我有一种在 MySQL 中插入 BLOB 类型数据的方法。执行时出现错误Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible'.
代码#
public static void FiletoSql(MemoryStream fileToPut, MySqlConnection con)
{
try
{
const string preparedCommand =
@"update user_account_statement set STATEMENT_FILE=@ssfile, create_date_time=@udatetime where statement_Id=1070";
using (var sqlWrite = new MySqlCommand(preparedCommand, con))
{
sqlWrite.Parameters.AddWithValue("@ssfile", MySqlDbType.Blob).Value = fileToPut.ToArray();
sqlWrite.Parameters.AddWithValue("@udatetime", MySqlDbType.DateTime).Value =
DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
sqlWrite.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
我没有得到确切的转换问题。
编辑:我试过了:
var fileData=new MySqlParameter("@ssfile",MySqlDbType.Blob,data.Length) {
Value = data
};
sqlWrite.Parameters.Add(fileData);
sqlWrite.Parameters.AddWithValue("@udatetime", MySqlDbType.DateTime)
.Value = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
var cmd = sqlWrite;
sqlWrite.ExecuteNonQuery();
现在我收到错误输入字符串格式不正确。
【问题讨论】:
-
听起来你必须实现接口?
-
@Noctis 不,它只是一种将数据插入 MySQL 表的方法。
-
看来你正在寻找类似的东西stackoverflow.com/a/13208599/1328536
-
看起来你想要的是用类似问题的参数创建一个查询。哦,Fuchs 好像也是这么说的