![](/img/trans.png)
[英]How to insert image in MySQL Database and retrive it using vb.net?
[英]VB.NET > How to insert an image with Using statement and retrieve it to be displayed?
這是我正在處理的將圖像插入數據庫的代碼。 我認為第一部分沒有任何問題。 但是,不知何故,這段代碼沒有按預期運行(沒有圖像插入數據庫)。 我不確定代碼的注釋部分是否與執行有關。 我應該如何以更可行的方式開發它? 此命令旨在與將鍵入的數據列表保存到數據庫中一起執行。 你能幫忙的話,我會很高興。
Using con As SqlConnection = New SqlConnection("Data Source=LAPTOP-85ALBAVS\SQLEXPRESS;Initial Catalog=Portal;Integrated Security=True")
Using cmd As SqlCommand = New SqlCommand("INSERT INTO Photo (Img, Pid) VALUES (@Img, @Pid)", con)
Using ms As New MemoryStream
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat)
cmd.Parameters.Add("@Img", SqlDbType.Image).Value = ms.ToArray()
cmd.Parameters.Add("@Pid", SqlDbType.VarChar).Value = TextBox1.Text
End Using
End Using
End Using
'con.Open()
'If Command.ExecuteNonQuery() = 1 Then
' MessageBox.Show("Profile successfully registered!", "Message", MessageBoxButtons.OK)
'Else
' MessageBox.Show("Failed. Try again.", "Message", MessageBoxButtons.OK)
'End If
'con.Close()
End Sub
這是我用來從數據庫中檢索圖像並顯示它的代碼。 這段代碼有問題。 如果未找到與特定Pid
相關的圖像,則會彈出錯誤'There is no row at position 0.'
(意味着沒有上傳圖片)。 但這對整個程序的執行影響不大,只要把圖片和輸入的數據一起上傳成功就可以了。
Dim command As New SqlCommand("Select * From Photo Where Pid = @Pid", con)
command.Parameters.Add("@Pid", SqlDbType.VarChar).Value = TextBox1.Text
Dim table As New DataTable()
Dim adapter As New SqlDataAdapter(command)
adapter.Fill(table)
Dim img() As Byte
img = table.Rows(0)(0)
Dim ms As New MemoryStream(img)
pictureBox1.Image = Image.FromStream(ms)
我解決了這個問題,這是它的代碼。 請隨時查看它,並希望它在將來對某人有所幫助:)
Using con As SqlConnection = New SqlConnection("Data Source=LAPTOP-85ALBAVS\SQLEXPRESS;Initial Catalog=Portal;Integrated Security=True")
Using cmd As SqlCommand = New SqlCommand("INSERT INTO Photo (Img, Pid) VALUES (@Img, @Pid)", con)
Using ms As New MemoryStream
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat)
cmd.Parameters.Add("@Img", SqlDbType.Image).Value = ms.ToArray()
cmd.Parameters.Add("@Pid", SqlDbType.VarChar).Value = TextBox1.Text
con.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Profile has been successfully registered!", "Thank you", MessageBoxButtons.OK)
End Using
End Using
End Using
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.