我想将上传的图像插入根目录图像文件夹及其在数据库中的图像列的路径。
我正在使用以下代码。它将路径插入数据库列中的图像,但不插入文件名:
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
On Error Resume Next
If FileUpload1.HasFile Then
FileUpload1.SaveAs(IO.Path.Combine(Server.MapPath("images"), FileUpload1.FileName))
End If
'/// upload images
Dim con As New SqlConnection
Dim cmd As New SqlCommand
con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
con.Open()
cmd.Connection = con
cmd.CommandText = "INSERT INTO Table3 (city, hotel, location, avialiability, room, price, image, category, from1, to1, price1, from2, to2, price2, from3, to3, price3, details) VALUES('" & Trim(DropDownList1.SelectedItem.Text) & "','" & Trim(DropDownList2.SelectedItem.Text) & "','" & Trim(TextBox5.Text) & "','" & Trim(TextBox6.Text) & "','" & Trim(DropDownList3.SelectedItem.Text) & "','" & Trim(TextBox7.Text) & "','" & "images/" & FileUpload1.FileName & "','" & Trim(TextBox17.Text) & "','" & Trim(TextBox8.Text) & "','" & Trim(TextBox9.Text) & "','" & Trim(TextBox10.Text) & "','" & Trim(TextBox11.Text) & "','" & Trim(TextBox12.Text) & "','" & Trim(TextBox13.Text) & "','" & Trim(TextBox14.Text) & "','" & Trim(TextBox15.Text) & "','" & Trim(TextBox16.Text) & "','" & (Editor1.Content) & "')"
cmd.ExecuteNonQuery()
con.Close()
End Sub
答案 0 :(得分:1)
试试这个:
Dim cmd As MySqlCommand = Nothing
Try
Dim query As String = "INSERT INTO (city, hotel, location) VALUES (@city, @hotel, @location)"
cmd = New MySqlCommand(query, connection)
cmd.Parameters.AddWithValue("@city", ddlCity.SelectedItem.Text)
cmd.Parameters.AddWithValue("@title", txtTitle.Text)
cmd.Parameters.AddWithValue("@location", txtLocation.Text)
cmd.ExecuteNonQuery()
Catch ex As Exception
Messagebox.Show("Error: " & ex.Message, MsgBoxStyle.Critical)
End Try
这里要记住几件重要的事情:
它会在数据库列中插入图像的路径,但不会插入文件名。
您可以尝试通过在代码的该部分设置断点来检查文件名值的来源,以便您可以关注并检查它。
希望这有帮助。
答案 1 :(得分:0)
试试这个:
''//cmd.ExecuteNonQuery()
暂时评论。
Response.Write(cmnd.CommandText)
看看commandText,如果你能找出问题所在。如果Insert语句的一部分工作,它可能是一个简单的SQL语法错误,你应该能够直观地获取它。如果您仍然看不到问题,请在此处发布您的代码。
顺便说一下,像这样建立你的SQL命令字符串只会引起麻烦。将来尝试使用Parameterised Query - 这将大大有助于保护您的应用程序免受现实世界SQL Injection attacks的影响并节省您的生活时间; - )
HTH