首页 > 解决方案 > 使用 vb.net 编辑

问题描述

这是我的编辑代码:

    Dim nom As String = NomBox.Text
    Dim prenom As String = PrenomBox.Text
    Dim email As String = EmailBox.Text
    Dim dn As String = DnBox.Text
    Dim da As String = DaBox.Text
    Dim tel As String = TelBox.Text

    Dim SQL As String
    Dim sqlparams() As SqlParameter
    If Page.IsPostBack Then
        SQL = " UPDATE ASSMS__Members SET First_Name=@1,Last_Name=@2,Birth_Date=@3,Email=@4,Mobile_1=@5,Membership_Date=@6 WHERE ID_=@7"
        sqlparams = {
        New SqlParameter("@1", SqlDbType.Text, 200),
        New SqlParameter("@2", SqlDbType.Text, 100000),
        New SqlParameter("@3", SqlDbType.Date),
        New SqlParameter("@4", SqlDbType.Text, 100000),
        New SqlParameter("@5", SqlDbType.Text, 100000),
        New SqlParameter("@6", SqlDbType.Date),
       New SqlParameter("@7", SqlDbType.UniqueIdentifier)
   }
        sqlparams(0).Value = NomBox.Text
        sqlparams(1).Value = PrenomBox.Text
        sqlparams(2).Value = EmailBox.Text
        sqlparams(3).Value = DnBox.Text
        sqlparams(4).Value = DaBox.Text
        sqlparams(5).Value = TelBox.Text
        sqlparams(6).Value = Guid.Parse(Request.Params("ID_"))
        _Conn.Connection_On()
        _Conn.Execute_Sql_Prepare(SQL, "NonQuery", sqlparams)
        _Conn.Connection_Off()
        Response.Redirect("./ListeMembres.aspx")

    End If

我总是有一个错误:

La chaîne n'a pas été reconnue comme DateTime valide。Il existe un mot inconnu commençant à l'index 0。

该频道未被识别为有效的日期时间。从索引 0 开始有一个未知单词。

请问怎么修?

标签: vb.net

解决方案


我已经分离了用户界面代码和数据库代码。用户输入的验证发生在 UI 代码中,并且经过验证的代码被发送到数据库代码。

您的连接应该是使用它的方法的本地连接,以便可以关闭和处理它。Using...End Using即使有错误,块也会为您处理。

Private Sub OPCode()
    If Page.IsPostBack Then
        'Validate user input
        Dim Dn As Date
        If Not Date.TryParse(DnBox.Text, Dn) Then
            'Alert the user and allow user to correct input
            Exit Sub
        End If
        Dim Da As Date
        If Not Date.TryParse(DaBox.Text, Da) Then
            'Alert the user and allow user to correct input
            Exit Sub
        End If
        Try
            UpdateDatabase(PrenomBox.Text, NomBox.Text, EmailBox.Text, Dn, Da, TelBox.Text, Guid.Parse(Request.Params("ID_")))
        Catch ex As Exception
            'Alert the user of Update Failure
            Exit Sub
        End Try
        Response.Redirect("./ListeMembres.aspx")
    End If
End Sub

Private Sub UpdateDatabase(FirstName As String, LastName As String, Email As String, Dn As Date, Da As Date, Tel As String, ID As Guid)
    Dim SQL As String = "UPDATE ASSMS__Members SET 
                        First_Name = @FirstName, 
                        Last_Name = @LastName, 
                        Birth_Date = @DOB, 
                        Email = @Email, 
                        Mobile_1 = @Mobile, 
                        Membership_Date = @MemberDate 
                        WHERE ID_ = @ID;"
    Using cn As New SqlConnection("Your connection string"),
            cmd As New SqlCommand(SQL, cn)
        With cmd.Parameters
            .Add("@FirstName", SqlDbType.Text, 200).Value = FirstName
            .Add("@LastName", SqlDbType.Text, 100000).Value = LastName
            .Add("@DOB", SqlDbType.Date).Value = Da
            .Add("@Email", SqlDbType.Text, 100000).Value = Email
            .Add("@Mobile", SqlDbType.Text, 100000).Value = Tel
            .Add("@MemberDate", SqlDbType.Date).Value = Dn
            .Add("@ID", SqlDbType.UniqueIdentifier).Value = ID
        End With
        cn.Open()
        cmd.ExecuteNonQuery()
    End Using
End Sub

推荐阅读