从mysql保存并重试映像
本文关键字:重试 映像 保存 mysql | 更新日期: 2023-09-27 17:58:43
在C#中,我正在尝试保存和加载一个图像。我将它保存到一个mysql数据库(类型为longblob)中,并试图将其加载回一个图片框中。我一直得到的问题是错误"参数无效",请参阅下面的代码
ConnectionClass Sqlconnection = new ConnectionClass();
Sqlconnection.ConnectionOpen();
OdbcCommand cmd = new OdbcCommand("Insert into pictest(pic) values('"+ Encoding.Unicode.GetBytes(richTextBox1.Rtf) + "')", Sqlconnection.connection);
int num = cmd.ExecuteNonQuery();
MessageBox.Show(num + " Rows inserted ");
Sqlconnection.ConnectionClose();
OdbcDataReader rd = null;
try
{
Sqlconnection.ConnectionOpen();
string query = "select * from pictest where id = 1";
cmd = new OdbcCommand(query, Sqlconnection.connection);
rd = cmd.ExecuteReader();
if (rd.Read())
{
byte[] bytes = (byte[])rd[1];
ImageConverter converter = new ImageConverter();
pictureBox1.Image = Image.FromStream(new MemoryStream(bytes)); <--Parameter is not valid
pictureBox1.Refresh();
pictureBox1.Image = Encoding.Unicode.GetString(bytes);
}
Sqlconnection.ConnectionClose();
rd.Close();
}
catch (Exception asd)
{
MessageBox.Show("Problem " + asd.Message);
Sqlconnection.ConnectionClose();
if (rd != null)
{
rd.Close();
}
}
问题究竟出在哪里?图像是否保存不正确?它应该像保存到一个长Blob一样。图像的记录显示System。Byte[]
在尝试将第一个字段强制转换为byte[]
之前,您应该能够检查(通过调试器)OdbcDataReader
内部的值。查看OdbcDataReader
中实际存储的类型
使用SELECT *
在性能方面存在问题。这也让您的rd[1]
有待解释。如果列的顺序发生变化,代码可能会中断。使用rd["your_column_name"]
访问这些值。到目前为止,由于SELECT *
和对Items
数组的未命名索引,我无法判断索引1是否正确。
首先,为什么需要在MySql中存储映像?
为什么不在物理驱动器中?如果它不是一个关键的数据去保存在物理驱动器。
然而,这里有要检索的代码:
public byte [] getImage(int imageNumber)
{
string strSql = "SELECT * FROM File";
DataSet ds = new DataSet("Image");
OdbcDataAdapter tempAP = new OdbcDataAdapter(strSql,this._objConn);
OdbcCommandBuilder objCommand = new OdbcCommandBuilder(tempAP);
tempAP.Fill(ds,"Table");
try
{
this._objConn.Open();
byte [] buffer = (byte [])ds.Tables["Table"].Rows[imageNumber]["Data"];
return buffer;
}
catch{this._objConn.Close();return null;}
finally{this._objConn.Close();}
}
礼貌:http://www.codeproject.com/Articles/6750/Storing-Images-in-MySQL-using-ASP-NET
对于物理驱动器http://www.codeproject.com/Articles/2113/C-Photo-Album-Viewer