变量名@name已经声明变量名必须是唯一的

时间:2016-01-06 09:04:23

标签: vb.net

This is the error Occurs on my system

这是我的代码更新

highlighter: {
             tooltipContentEditor: function (ev, seriesIndex, pointIndex, data) {
             return data[3] ;
                },
             show: true
}

2 个答案:

答案 0 :(得分:0)

因为cmd中的前一个commandtext(它的全局声明)保存了参数@fullname的值。 使用

cmd.Parameters.Clear()

在指定参数值之前清除query.hope中的现有参数值会有所帮助。

答案 1 :(得分:0)

以下是作为指导原则的概念证明。请注意,某些代码使用xml文字,如果使用较旧版本的.NET Framework以及如何使用With方法分配属性,则可能无效。代码并不意味着简单地插入,但如果你认为合适,则研究然后应用于你的代码。另请注意,您应始终检查更新或插入命令的结果,如下所示,以确定是成功还是失败。最后,使用语句将关闭连接并释放连接和命令的内存。

我曾经使用过命令,但另一个选择是清除参数集合,如akhil kumar所示。

Imports System.Data.SqlClient
Module Module1
    Public Sub Demo()
        Using conn As New SqlConnection("Data Source=HAMSE_PC\SQLEXPRESS;Initial Catalog=Body;Integrated Security=True")
            Using cmd As New SqlCommand("", conn)
                cmd.CommandText =
                    <SQL>
                        UPDATE Users 
                        SET
                            FullName = @fullname,
                            Phone = @phone,
                            [Date] = @date,
                            Discription = @dis,
                            UserName = @user,
                            [Password] = @pass 
                        WHERE
                            User_ID = @ID
                    </SQL>.Value

                cmd.Parameters.Add(
                    New SqlParameter With
                    {
                        .ParameterName = "@fullname",
                        .SqlDbType = SqlDbType.NVarChar,
                        .Value = "TODO"
                    }
                )

                ' add remaining parameters

                conn.Open()

                Dim affected As Integer = cmd.ExecuteNonQuery
                If affected = 1 Then
                    ' success
                    Dim dt As New DataTable
                    Using cmdRead As New SqlCommand With {.Connection = conn, .CommandText = "select * from Users"}
                        dt.Load(cmdRead.ExecuteReader)
                        UsersDataGridView.DataSource = dt.DefaultView
                    End Using

                Else
                    ' not what we expected e.g. more than one row
                    ' was changed etc.
                End If
            End Using
        End Using
    End Sub
End Module