if(File.Exists(textBox2.Text)==false)
{
MessageBox.Show("文件不存在");return;
}
string fileName=textBox1.Text;
FileStream fs=new FileStream(textBox2.Text,FileMode.Create);
byte [] b=new byte[fs.Length];
fs.Write(b,0,b.Length);
fs.Close();
SqlConnection con=new SqlConnection("server=.;database=test;uid=sa;pwd=liyi123");
con.Open();
string sql="insert into uploadImage([name],[content],dis)values(@name,@content,@dis)";
SqlParameter [] parm=new SqlParameter[]
{
new SqlParameter("@name",SqlDbType.VarChar,50),
new SqlParameter("@content",SqlDbType.Binary,b.Length),
new SqlParameter("@dis",SqlDbType.VarChar,500)
};
parm[0].Value=textBox1.Text;
parm[1].Value=b;
parm[2].Value=textBox3.Text;
SqlCommand cmd=new SqlCommand(sql,con);
foreach(SqlParameter p in parm)
cmd.Parameters.Add(p);
if(cmd.ExecuteNonQuery()>0)MessageBox.Show("ok");
else MessageBox.Show("faile");
SqlConnection con=new SqlConnection("server=.;database=test;uid=sa;pwd=liyi123");
con.Open();
SqlDataAdapter d=new SqlDataAdapter("select content from uploadImage where id=1",con);
DataTable dt=new DataTable();
d.Fill(dt);
byte [] b=(byte [])dt.Rows[0]["content"] ;
  Stream s=new MemoryStream(b);
s.Read(b,0,b.Length);
//Bitmap img=new Bitmap(s);
Image image=Image.FromStream(s);
pictureBox1.Image=image;读取时候老是提示使用了无效参数 请教各位

解决方案 »

  1.   

    SqlDbType.Binary 改成Image也一样
      

  2.   

    你是从数据库读取二进制数据来构建 Image 对象,可能出错的原因就是存储数据的过程中出了问题。换句话说,在读取图片数据的时候可能出现了逻辑错误。
      

  3.   

    FileStream fs=new FileStream(textBox2.Text,FileMode.Create);
                byte [] b=new byte[fs.Length];
                fs.Write(b,0,b.Length);
                fs.Close();
    你这等于创建了一个空文件,什么也没写进去,
    b.Lenght=0
      

  4.   

    试试:
                FileStream fs = new FileStream(textBox2.Text, FileMode.Open, FileAccess.Read);
                byte[] b = new byte[fs.Length];
                fs.Read(b, 0, b.Length);
                fs.Close();
      

  5.   

    流的读写都弄反了,前面的应该Read使用了Write,后面的应该Write使用了Read。
    SqlConnection con=new SqlConnection("server=.;database=test;uid=sa;pwd=liyi123");
                con.Open();
                SqlDataAdapter d=new SqlDataAdapter("select content from uploadImage where id=1",con);
                DataTable dt=new DataTable();
                d.Fill(dt);
                byte [] b=(byte [])dt.Rows[0]["content"] ;
                 Stream s=new MemoryStream(b);
                s.Write(b,0,b.Length);
                //Bitmap img=new Bitmap(s);
                Image image=Image.FromStream(s);
                pictureBox1.Image=image;