none
image转stream存入dataset更新数据库问题? RRS feed

  • 问题

  •  

    请问如何将image转成stream存入数据库...

    MemoryStream stream = new MemoryStream();

    Image image=this.pictureBox1.Image;

    BinaryFormatter bf=new BinaryFormatter();
    bf.Serialize(stream, (object)image);
    byte[] bytes;

    stream.Close();
    bytes = stream.ToArray();

     jiaAoSchoolDataSet.Stu_Info.Rows[row][9]=bytes;
    SqlDataAdapter sda=new SqlDataAdapter("select * from Stu_Info",SqlConn.GetConn());
    SqlCommandBuilder scb = new SqlCommandBuilder(sda);
    sda.Update(jiaAoSchoolDataSet);

    stu_InfoTableAdapter.Update(jiaAoSchoolDataSet.Stu_Info);

    上面的代码我使datagridview里的相应列的图片变成大红叉叉..

    而且还不能update进数据库..

    这是为啥?

     

    请高手指点下...

    2008年3月21日 3:54

答案

  • 不知道你用BinaryFormatter进行序列化是否正确,Image类有一个Save方法,你可以用它的Save(Stream, ImageFormat)重载将图像内容保存到你的MemoryStream。

    这个问题要分2步看:

    1、序列化是否正确

    2、Update的时候是否有问题。

    所以建议,你先采用一般原始的保存方法(SqlCommand)单据进行数据库的保存和获取操作,以检查序列化操作是否有问题。如果没有问题,在考察Update操作的代码有什么潜在问题

    2008年3月21日 5:33
    版主