我学.net不久 
今天遇到了一个大问题 怎么搞都搞不象郁闷死了需求是这样的 (听起来很简单的问题):
是一个公司的人员管理系统
在员工录入的界面里 我分了3块
第一块是必添的信息 比如姓名,工号等等。。
第二块和第三块都是选添的(第二块是个人基本信息,第三块是单位信息) 可写可不写我做的是  当用户添了第一块的时候 数据库里已经产生了一条数据
随后在第二第三块中 看似点的是保存 其实是在那条数据上UPDATE
现在在第二块中 需要有一个员工的照片要输入进去
我在数据库里用的是image类型
不知道怎么办了~~网上也查了好多~没有研究出来
请大哥大姐帮帮忙谢谢工作环境是:vs2008和mssql2005

解决方案 »

  1.   

    写与存储图片
    Stream imgdatastream=this.File1.PostedFile.InputStream;
    int imgdatalengh=this.File1.PostedFile.ContentLength;
    // string imgtype=this.File1.PostedFile.ContentType;
    byte [] imgdata= new byte[imgdatalengh];
    imgdatastream.Read(imgdata,0,imgdatalengh);

    System.Data.SqlClient.SqlConnection conn=new System.Data.SqlClient.SqlConnection(DataAccess.strconn);
    string str="insert into imgstore(imgtitle,imgtype,imgdata) values(@imgtitle,@imgtype,@imgdata)";
    conn.Open();

    System.Data.SqlClient.SqlCommand comm=new System.Data.SqlClient.SqlCommand(str,conn);
    System.Data.SqlClient.SqlParameter ma=new System.Data.SqlClient.SqlParameter("@imgtitle",SqlDbType.VarChar,50);
    ma.Value=this.TextBox1.Text;
    comm.Parameters.Add(ma);

    System.Data.SqlClient.SqlParameter mytype=new System.Data.SqlClient.SqlParameter("@imgtype",SqlDbType.VarChar,50);
    mytype.Value=this.File1.PostedFile.ContentType;
    comm.Parameters.Add(mytype); System.Data.SqlClient.SqlParameter myimg=new System.Data.SqlClient.SqlParameter("@imgdata",SqlDbType.Image);
    myimg.Value=imgdata;
    comm.Parameters.Add(myimg);
    comm.ExecuteNonQuery();

    conn.Close();读与显示图片
    strId=this.Request.QueryString[0];
    System.Data.SqlClient.SqlConnection conn=new System.Data.SqlClient.SqlConnection(DataAccess.strconn);
    string str="select * from imgstore where id='"+strId+"'";
    conn.Open();
    System.Data.SqlClient.SqlCommand comm=new System.Data.SqlClient.SqlCommand(str,conn);
    comm.ExecuteNonQuery();
    System.Data.SqlClient.SqlDataReader myreader=comm.ExecuteReader();
    if(myreader.Read())
    {
    Response.ContentType=myreader["imgtype"].ToString();
    Response.BinaryWrite((byte[])myreader["imgdata"]);
    }
    myreader.Close();
    conn.Close();
      

  2.   

    还不是很明白进数据库的image 会报错 (操作数类型冲突: image 与 varchar 不兼容 )
      

  3.   

    数据库表设计:
    imgtitle varchar(50)  标题
    imgtype  varchar(50)  类型
    imgdata  Image        图片数据(二进制流)
      

  4.   

    在数据库中存入图片地址
    用户Server.mapPath来获得项目跟目录路径