连接是打开和关闭但没有行插入我的数据库?

时间:2014-04-02 11:33:48

标签: vb.net sql-server-2008 insert database-connection row

我正在使用visual studio 2010和microsoft sql server 2008。

这是我的程序代码:

 PROCEDURE [dbo].[InsUpdUser]
(
    @UID nchar(10),
    @FName nchar(20),
    @SName nchar(20),
    @LName nchar(20),
    @UT nchar(6),
    @PWord nchar(4)
)
as
BEGIN
    -- add NEW record
    insert into UserT ([UID],FName,SName,LName,UT,PWord,QC)values(@UID,@FName,@SName,@LName,@UT,@PWord,0);


END

这个类的代码:

Public Class DataAccsess
    Dim con As SqlConnection = New SqlConnection("Data Source=822-PC;Initial Catalog=ICDLDB;Integrated Security=True")

    'open connection to the database
    Public Sub dataAccess()
        con.Open()
        MsgBox("opend")
    End Sub
    'close the connection to the database
    Public Sub CloseCon()
        con.Close()
        MsgBox("Closed")
    End Sub

Public Sub addUsers(ByVal UID As String, ByVal fName As String, ByVal sName As String, ByVal lName As String, ByVal UserT As String, ByVal Pword As String)
        Try
            Dim PAS As String
            Dim com As SqlCommand = New SqlCommand("InsUpdUser", con)
            PAS = (UID).ToString.Substring(UID.ToString.Length - 4)
            com.CommandType = CommandType.StoredProcedure
            com.Parameters.Add(New SqlParameter("@UID", UID))
            com.Parameters.Add(New SqlParameter("@FName", fName))
            com.Parameters.Add(New SqlParameter("@SName", lName))
            com.Parameters.Add(New SqlParameter("@LName", sName))
            com.Parameters.Add(New SqlParameter("@UserT", UserT))
            com.Parameters.Add(New SqlParameter("@Pword", PAS))



        Catch ex As Exception
            MsgBox(ex.Message.ToString)

        End Try
    End sub

End Class

按钮代码:

Try    
            Dim da As New DataAccess

            da.opencon()

            Dim ID, FN, SN, LN, UT, PWord As String
            ID = TextBox2.Text
            FN = TextBox3.Text
            SN = TextBox4.Text
            LN = TextBox5.Text
            UT = DropDownList1.SelectedItem().Text
            PWord = "0"


            da.AddUser(ID, FN, SN, LN, UT, PWord)

            da.closecon()
        Catch ex As Exception
            MsgBox(ex.ToString)

        End Try

所以 代码运行 我在文本框中插入所有信息 弹出MsgBox("打开") 然后 弹出MsgBox("关闭") 没啥事儿 没有在数据库中插入行 viewGrid上没有显示任何行。 没啥事儿 我正在使用visual studio 2010附带的express sql,同样的事情发生了。 我的朋友告诉我删除它并下载microsoft sql server 2008。 我这样做但是同样的问题。 No Row添加。 程序,流程 是在sql server中执行的。 当我创建连接时。 连接测试弹出连接成功。 运行中的连接打开和关闭。 但没有行添加。

希望我发现任何人都可以帮助我。

谢谢

2 个答案:

答案 0 :(得分:0)

在AddUser中存在拼写错误。将其更改为AddUsers,如下所示。

 da.AddUsers(ID, FN, SN, LN, UT, PWord)

并将参数add更改为以下

command.Parameters.AddWithValue("@UID", UID)

答案 1 :(得分:0)

使用此覆盖您的现有Sub,它应该可以工作。您缺少执行命令,并且子命名不正确或对它的调用不正确。他们需要匹配。

Public Sub AddUser(ByVal UID As String, ByVal fName As String, ByVal sName As String, ByVal lName As String, ByVal UserT As String, ByVal Pword As String)
        Try
            Dim PAS As String
            Dim com As SqlCommand = New SqlCommand("InsUpdUser", con)
            PAS = (UID).ToString.Substring(UID.ToString.Length - 4)
            com.CommandType = CommandType.StoredProcedure
            com.Parameters.Add(New SqlParameter("@UID", UID))
            com.Parameters.Add(New SqlParameter("@FName", fName))
            com.Parameters.Add(New SqlParameter("@SName", lName))
            com.Parameters.Add(New SqlParameter("@LName", sName))
            com.Parameters.Add(New SqlParameter("@UserT", UserT))
            com.Parameters.Add(New SqlParameter("@Pword", PAS))

            com.ExecuteNonQuery()

        Catch ex As Exception
            MsgBox(ex.Message.ToString)

        End Try
   End sub