2012-03-23 4 views
0

FileUploadコントロールを使用してデータベースに画像を挿入したいとします。 )FileUploadでデータベースに画像を挿入する

protected void btnUploadAvatar_Click(object sender, EventArgs e) 
    { 
     if (fuAvatar.PostedFile != null && fuAvatar.PostedFile.FileName != "") ; 
     { 
      byte[] imageSize = new byte[fuAvatar.PostedFile.ContentLength]; 

      HttpPostedFile uploadImage = fuAvatar.PostedFile; 

      uploadImage.InputStream.Read(imageSize, 0, fuAvatar.PostedFile.ContentLength); 

      SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); 

      SqlCommand cmd = new SqlCommand(); 

      cmd.CommandText = "INSERT INTO User(image" + "VALUES (@Image) WHERE userid = @Userid"; 

      cmd.CommandType = CommandType.Text; 

      cmd.Connection = con; 

      SqlParameter UploadedImage = new SqlParameter("@Image", SqlDbType.Image, imageSize.Length); 
      UploadedImage.Value = imageSize; 

      SqlParameter userid = new SqlParameter("@Userid", SqlDbType.Int); 
      userid.Value = Convert.ToInt32(Session["userid"]); 

      cmd.Parameters.Add(userid); 
      cmd.Parameters.Add(UploadedImage); 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
      con.Close(); 

      /*if(result > 0) 
      { 
       lblResult.Text = "Avatar lastet opp"; 
      }*/ 
     } 
    } 

しかし、私は(cmd.ExecuteNonQueryにエラーが発生します。:私は、次のコードでこれを行うことを試みましたSqlExceptionがユーザーコードによって処理されていない、キーワード 'User'の近くの構文が間違っています。私は* .jpgファイルと* .pngファイルの両方を10KB以下のサイズで試しました。

答えて

1

あなたは構文エラーがあります:行方不明)との間隔が

cmd.CommandText = 
      "INSERT INTO User(image" + "VALUES (@Image) WHERE userid = @Userid"; 

あり:

cmd.CommandText = 
      "INSERT INTO User(image)" + " VALUES (@Image) WHERE userid = @Userid"; 

それとも、いっそ(なぜすべてで連結?):

cmd.CommandText = 
      "INSERT INTO User(image) VALUES (@Image) WHERE userid = @Userid"; 
+0

ありがとう、これは働いたが、私はそれをやって別の方法を見つけた。とにかくありがとう! – Twistar

関連する問題