2013-07-27 215 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 
    

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

相关问题