0

我想從用戶輸入5個圖像,顯示縮略圖並將它們保存到SQL數據庫(image1,image2,image3,image4,image5)中的5列。計數並限制使用VB.NET上傳的文件數

請爲這5個文件的sql插入添加代碼。

請幫我

Private Sub BrowseMultipleFilesButton_Click(ByVal sender As System.Object, _ 
      ByVal e As System.EventArgs) Handles BrowseMultipleFilesButton.Click 
    Dim OpenFileDialog1 As New OpenFileDialog 
    OpenFileDialog1.Filter = 
    "Images (*.BMP;*.JPG;*.GIF,*.PNG,*.TIFF)|*.BMP;*.JPG;*.GIF;*.PNG;*.TIFF|" + 
    "All files (*.*)|*.*" 

    OpenFileDialog1.Multiselect = True 
    Dim index As New Integer 

    OpenFileDialog1.Title = "Select Photos" 

    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then 
     For Each file As String In OpenFileDialog1.FileNames 
      Dim imageControl As New PictureBox() 
      imageControl.Height = 100 
      imageControl.Width = 100 
      Dim myCallback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback) 
      Dim myBitmap As New Bitmap(file) 
      Dim myThumbnail As Image = myBitmap.GetThumbnailImage(96, 96, myCallback, IntPtr.Zero) 
      imageControl.Image = myThumbnail 

      PhotoGallary.Controls.Add(imageControl) 
      index = OpenFileDialog1.FilterIndex() 
     Next 
     If index > 5 Then 
      MessageBox.Show("Please select no more than 5 files") 
     Else 
      btn_Save.Enabled = True 

     End If 
    End If 
End Sub 
+0

請問您有關於您遇到的問題的更多描述嗎? – abarisone

+0

問題是,代碼不限制我上傳超過5個文件。 – Sumi

回答

0

如果你只想讓5個圖像文件,沒有必要多此一舉測試文件的數量之前製作縮略圖。由於FileDialog.FileNames Property返回一個字符串數組,你想測試後做了DialogResult是確定的第一件事,就是測試數組的長度:

If OpenFileDialog1.FileNames.Length > 5 Then 
    MessageBox.Show("Please select no more than 5 files") 
    Exit sub 
End If 
'' The rest of your code, including the row btn_Save.Enabled = True. 
+0

非常感謝...它的工作原理!但我必須顯示用戶上傳的圖像 – Sumi

+0

也告訴我如何將這5個圖像保存在sql-database 5列 – Sumi

+0

這不就是你的代碼的其餘部分正在做什麼? –

0

問題解決了!

Private Sub BrowseMultipleFilesButton_Click(ByVal sender As System.Object, _ 
      ByVal e As System.EventArgs) Handles BrowseMultipleFilesButton.Click 
    Dim OpenFileDialog1 As New OpenFileDialog 
    OpenFileDialog1.Filter = 
    "Images (*.BMP;*.JPG;*.GIF,*.PNG,*.TIFF)|*.BMP;*.JPG;*.GIF;*.PNG;*.TIFF|" + 
    "All files (*.*)|*.*" 

    OpenFileDialog1.Multiselect = True 
    Dim index As New Integer 

    OpenFileDialog1.Title = "Select Photos" 

    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then 
     If OpenFileDialog1.FileNames.Length > 5 Then 
      MessageBox.Show("Please select no more than 5 files") 
      Exit Sub 
     End If 
     If OpenFileDialog1.FileNames.Length < 5 Then 
      MessageBox.Show("Please select 5 files") 
      Exit Sub 
     End If 
     For Each file As String In OpenFileDialog1.FileNames 
      Dim imageControl As New PictureBox() 
      imageControl.Height = 100 
      imageControl.Width = 100 
      Dim myCallback As New Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback) 
      Dim myBitmap As New Bitmap(file) 
      Dim myThumbnail As Image = myBitmap.GetThumbnailImage(96, 96, myCallback, IntPtr.Zero) 
      imageControl.Image = myThumbnail 

      PhotoGallary.Controls.Add(imageControl) 
      index = OpenFileDialog1.FilterIndex() 
     Next 
     btn_Save.Enabled = True 
     BrowseMultipleFilesButton.Enabled = False 


    End If 
End Sub 
+0

爲什麼不在一種情況下檢查長度是否與5不同? –

+0

Yeh!我們也可以做到這一點。 – Sumi