2013-07-27 255 views
2

這是我在數據表中插入數據的代碼。當Execute我得到消息「成功」。但數據不在數據表中。使用vb.net從Sql數據庫插入,更新和刪除數據?

Imports System.Data 
Imports System.Data.SqlClient 

Partial Public Class _Default 
    Inherits System.Web.UI.Page 
    Dim s As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=G:\ANDY\Dot Net.Practical\SQL DATA BASE\inserting4\inserting4\App_Data\location.mdf;Integrated Security=True;User Instance=True" 
    Dim sql As String 
    Dim con As New SqlConnection 
    Dim cmd As SqlCommand 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     con = New SqlConnection(s) 
     con.Open() 

    End Sub 

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 

     sql = "insert into location(name,street,city)values(@name,@street,@city)" 
     cmd = New SqlCommand(sql, con) 

     cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = TextBox1.Text 
     cmd.Parameters.Add("@street", SqlDbType.NVarChar).Value = TextBox2.Text 
     cmd.Parameters.Add("@city", SqlDbType.NVarChar).Value = TextBox3.Text 
     cmd.ExecuteNonQuery() 

     MsgBox("SUCCESS") 


    End Sub 
End Class 
+0

你缺少前'ExecuteNonQuery'一個開放的連接字符串 – Marek

+0

[在C#中插入問題,使用sqlcommand]的可能重複(http://stackoverflow.com/questions/3317868/insert-problem-in-c-using-sqlcommand) –

回答

2

整個用戶實例和AttachDbFileName =方法是有缺陷的 - 在最好的!當運行在Visual Studio中的應用程序,它會圍繞.mdf文件被複制(從App_Data目錄輸出目錄 - 通常.\bin\debug - 在你的應用程序運行)和最有可能,你INSERT的作品就好了 - 但你只是看着錯誤.mdf文件到底!

如果你想堅持這種方法,那麼試着在myConnection.Close()調用上放一個斷點 - 然後用SQL Server Mgmt Studio Express檢查.mdf文件 - 我幾乎可以確定你的數據在那裏。

在我看來真正的解決方案

  1. 安裝SQL Server Express(和你已經做到這一點無論如何)

  2. 安裝SQL Server Management Studio中快速

  3. 中創建您的數據庫SSMS Express,給它一個邏輯名稱(例如Location

  4. 使用其邏輯連接數據庫名稱(在服務器上創建時給出) - 並且不要亂用物理數據庫文件和用戶實例。在這種情況下,您的連接字符串將是這樣的:

    Data Source=.\\SQLEXPRESS;Database=Location;Integrated Security=True 
    

    和其他一切是正是和以前一樣......

相關問題