读书人

C#中向MySQL数据库存储图片的有关问题

发布时间: 2012-11-17 11:14:15 作者: rapoo

C#中向MySQL数据库存储图片的问题
MySQL数据库建有一个表 t_a,有一个字段 image,类型是BLOB,用来存储图片。

C# code
        String connStr = "server='" + SeverName + "';Database='" + DBName + "';uid='" + UserName + "';pwd='"  + UserPW + "'";        string sql="select * from t_a";        DataSet dt = new DataSet("t_a");//创建一个数据集dt        MySqlConnection Conn = new MySqlConnection(connStr);//定义新的数据连接控件并初始化        Conn.Open();//打开连接        MySqlDataAdapter reads = new MySqlDataAdapter(sql, Conn);//定义并初始化数据适配器        MySqlCommandBuilder cmb = new MySqlCommandBuilder(reads);        reads.MissingSchemaAction = MissingSchemaAction.AddWithKey;        reads.Fill(dt, "t_a");    //将数据适配器中的数据填充到数据集dt中        FileStream fs = new FileStream(@"E:\My Pictures\test.bmp", FileMode.OpenOrCreate, FileAccess.Read);        byte[] MyData = new byte[fs.Length];        fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));        fs.Close();        DataRow myRow;        myRow = dt.Tables["t_a"].NewRow();               myRow["image"] = MyData;        dt.Tables["t_a"].Rows.Add(myRow);        reads.Update(dt, "t_a");        Conn.Close();//关闭连接

用上述方法可以存储文件类型,但是换成图片时,要报类似这样的错误
C# code
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Dnq???>??8p??&??,?????HV{x???tR {[))???7???|lV?y??|?n??fu??G?Io????? 4?Rup??' at line 1 

好像读取的路径是乱码,望各位指教。

[解决办法]
楼主直接上传图片然后保存到数据库就行了啊!
[解决办法]
是语法错误,因为你的数据库编码不对,在执行前先执行
set names gbk
然后再执行插图片的操作
[解决办法]
个人建议还是别将图片存入数据,那样会增加数据库的容量,从长久使用角度来看,也不利于备份或升级!
[解决办法]
数据库默认编码错误造成了你的sql乱码

一般默认是utf-8,乱码的话
在mysql客户端执行
set names gbk
试试
[解决办法]
探讨
引用:
是语法错误,因为你的数据库编码不对,在执行前先执行
set names gbk
然后再执行插图片的操作

大哥,能再详细点么?兄弟是菜鸟啊,这方面。

[解决办法]
Sorry,错了,是:
MySQLCommand MyCmd = new MySQLCommand("set names GBK", Conn);

[解决办法]
探讨
个人建议还是别将图片存入数据,那样会增加数据库的容量,从长久使用角度来看,也不利于备份或升级!

[解决办法]
每天回帖即可获得10分可用分
[解决办法]
编码不一样图片是二进制的吧
[解决办法]
确实是个怪问题
[解决办法]
探讨
引用:
坐等高手现身啊

坐等高手现身啊

[解决办法]
为什么要存图片呢?存图片路径不行吗?

读书人网 >C#

热点推荐