本帖最后由 letianzuin4 于 2013-03-23 11:34:59 编辑

解决方案 »

  1.   

    存图片的代码有问题,你没有发现你数据库读出来的图片只有21个字节么?那21个字节表示的字符串是:
    System.Drawing.Bitmap
    研究研究怎么存图片到数据库吧:http://wenku.baidu.com/view/8e014f235901020207409cc6.html
      

  2.   

        string ConStr = "server=(local);user id=sa;pwd=sa;database=test"; 
            SqlConnection conn = new SqlConnection(ConStr);
            string strSql = "Insert into piclist(pic) values(@pic)";
            SqlCommand cmd = new SqlCommand(strSql, conn);
             cmd.Parameters.Add("@pic", SqlDbType.Image);
             cmd.Parameters["@pic"].Value = PhotoArray;//PhotoArray是byte数组,即二进制数据
               conn.Open();
             cmd.ExecuteNonQuery();
             conn.Close(); string sqlstr = "update [Base_TeacherInfo] set "
                                + " [pic]='" + i + "'"
                                + " where [ID] ='1' ";
    你这行实际执行的SQL语句是update [Base_TeacherInfo] set  [pic]='System.Drawing.Bitmap' where [ID] 
    ='1'
    在字符串表达式中会自动调用变量的ToString方法,并不会把Image对象的二进制数据写在那里。
      

  3.   

    貌似你sql语句也有点问题。
    "update [Base_TeacherInfo] set "+ " [pic]='" + i + "'"+ " where [ID] ='1' ";
    你的i两边都有''符号。这就是转换成字符串的标记。二进制数据也是数字,而sql语句中数字是不需要打''的