我已经可以实现了将数据插入图片,但是我是做了一个注册信息的,每每我把信息和图片全部放入数据库,我的注册信息全部都在一列上,而我插入的图片去在另一列上这是为什么,如何写使得图片和我所有信息在一列上
这是我插入注册信息:
 SqlConnection conn = new SqlConnection("Data Source=PC-20101010FXQD;Database=db_users;User ID=sa;PWD=123456;");
                  conn.Open();
  string strsql = "insert into Users (UserName,PassWord,PassWord1,Phone,[E-Mail],Address,Age,Question1,Answer1,Question2,Answer2,Sex,QQ,Ip) values ('" + textName.Text + "','" + textPassWord.Text + "','" + textPassWord2.Text + "','" + textphone.Text + "','" + textName.Text + "','" + R_Address.Text + "','" + textAge.Text + "','" + texfpwd1.Text + "','" + textanswer1.Text + "','" + texfpwd2.Text + "','" + textanswer2.Text + "','" + Sex + "','" + txt_qq.Text + "','" + text_Ip.Text + "')";
           
            SqlCommand cmd = new SqlCommand(strsql, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
这是我插入图片:              Stream ms;
                  byte[] picbyte;
                  openFileDialog1.Filter = "*.jpg,*jpeg,*.bmp,*.ico,*.png,*.tif,*.wmf|*.jpg;*jpeg;*.bmp;*.ico;*.png;*.tif;*.wmf";
                  openFileDialog1.Title = "选择头像";
                  if (openFileDialog1.ShowDialog() == DialogResult.OK)
                  {
                      if((ms=openFileDialog1.OpenFile())!=null)
                      {
                          string Sql1;
                          picbyte = new byte[ms.Length];
                          ms.Position = 0;
                          ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));
                          SqlConnection conn1 = new SqlConnection("Data Source=PC-20101010FXQD;Database=db_users;User ID=sa;PWD=123456;");
                          Sql1 = "insert into Users(photo) values (@photo)";
                          SqlCommand cmd1 = new SqlCommand(Sql1, conn1);
                          cmd1.Parameters.Add("@photo", SqlDbType.Image).Value = picbyte;
                          conn1.Open();
                          cmd1.ExecuteNonQuery();
                          conn1.Close();
                          ms.Close();                          我的意思是如何写SQL语句把我这两段代码中的INSERT放在一起,也就是说所有的信息和图片显示在一列上

解决方案 »

  1.   


    你这又是拼接。。又是sql语句的。。太暴力了。。
      

  2.   


    终于看清题义了。。你把上面的insert语句。。再加个参数。。最后给参数赋值用sql参数化。后给参数赋值。。你现在估计矛盾就是在怎么给这个IMAGE类型的字段赋上值到sql语句中。。可以提取个方法返回byte[] picbyte
      

  3.   

    大虾我是菜鸟,刚学C#没多久,就是插入照片不知道如何值到sql语句中能不能给个示范下
      

  4.   

    SqlConnection conn = new SqlConnection("Data Source=PC-20101010FXQD;Database=db_users;User ID=sa;PWD=123456;");
      conn.Open();  
      string strsql = "insert into Users (UserName,PassWord,PassWord1,Phone,[E-Mail],Address,Age,Question1,Answer1,Question2,Answer2,Sex,QQ,Ip,photo) values (@UserName,@PassWord,@PassWord1,@Phone,@EMail,@Address,@Age,@Question1,@Answer1,@Question2,@Answer2,@Sex,@QQ,@Ip,@photo)";
       SqlParameter[] sp = new SqlParameter[]
       {
                    new SqlParameter("@UserName",textName.Text),
                    new SqlParameter("@PassWord",textPassWord.Text),
                    new SqlParameter("@PassWord1",textPassWord2.Text),              
                    .....
    //中间那么多就省略了,同样的写法
       };
      com.Parameters.AddRange(sp);
      SqlCommand cmd = new SqlCommand(strsql, conn);
      cmd.ExecuteNonQuery();
      conn.Close();
      
      
      //下面这块可以提取成一个方法,返回这个picbyte,在上面的参数集合中赋给photo参数
      Stream ms;
      byte[] picbyte;
      openFileDialog1.Filter = "*.jpg,*jpeg,*.bmp,*.ico,*.png,*.tif,*.wmf|*.jpg;*jpeg;*.bmp;*.ico;*.png;*.tif;*.wmf";
      openFileDialog1.Title = "选择头像";
      if (openFileDialog1.ShowDialog() == DialogResult.OK)
      {
      if((ms=openFileDialog1.OpenFile())!=null)
      {
     
      picbyte = new byte[ms.Length];
      ms.Position = 0;
      ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));