在sql数据库中插入数据vb.net没有存储

时间:2014-03-26 07:13:51

标签: sql sql-server database vb.net insert

我有一个奇怪的问题:我试图做一些基本程序在数据库中插入数据而我不知道它发生了什么,但它不起作用。

问题是我有一个名为prova3的数据库,它是一个使用vb.net 2013创建的SQL Server 2012数据库,其中包含一个名为tabela的表。我创建了一个数据集来查看存储在app.config中的连接字符串。字符串在下面是相同的。我没有收到错误,但未插入数据。当我转到服务器资源管理器查看表中的数据时,它是空的。

我认为这些数据已保存在其他地方,但我不知道如何修复它,因为我认为我编码正确。这是为vb.net,但我为asp.net做了相同的代码,它的工作原理。怪异。

你能帮帮我吗?

在表单中,它只有一个textbox1和一个button1控件。没有更多的代码。

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim ImageUrlSt As String
    Dim command1 As New SqlCommand
    Dim con As New SqlConnection
    ImageUrlSt = TextBox1.Text
    Try
        con.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Prova3.mdf;Integrated Security=True"
        con.Open()
        command1.Connection = con
        command1.CommandText = "INSERT INTO Tabela (imageurl) VALUES (@imageurlst)"
        command1.Parameters.Add(New SqlParameter("@imageurlst", ImageUrlSt))
        command1.ExecuteNonQuery()
        MsgBox("News Saved Succesfully")
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        con.Close()
    End Try
End Sub

1 个答案:

答案 0 :(得分:2)

有时|DataDirectory|路径在调试时会出现问题。您是否在\bin\debug检查了数据库副本?

有一个属性Copy to Output Directory,默认值为Copy if newer(如果您使用的是.mdf或.mdb文件,则默认值为Copy always)。您可以查看 MSDN document 以了解此属性的含义。简而言之,本地数据库文件将被复制到Output目录,而THAT数据库将被更新。

如果您不希望Visual Studio为您复制数据库文件,则可以将“复制到Output Directory”属性设置为Do not copy。然后,您可以选择何时以及如何覆盖数据库文件。当然,您仍然需要两个数据库文件副本:在设计时,您正在使用解决方案目录中的数据库文件,而在运行时,您正在修改输出目录中的数据库文件。

另一种选择是在ConnectionString上使用绝对路径 con.ConnectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\MyProjectFolder\Prova3.mdf;Integrated Security=True"