【问题标题】:Error When updating Database Date/Time format from Vb.net从 Vb.net 更新数据库日期/时间格式时出错
【发布时间】:2013-12-14 16:44:05
【问题描述】:

我正在使用用 VB.Net 编写的更新查询,然后将其发送到 SQLite 客户端。更新时一切正常,日期除外。我在 VB 表单上有 2 个日期/时间选择器。我在那里取值并将它们向左修剪,10 所以我只有日期并将其放入变量中。然后我把它放在一个查询中,它应该发送到数据库客户端。而不是输入日期,它会擦除​​值并将其留空!知道为什么会这样吗?代码如下!

Sub Cmd_SaveClick(sender As Object, e As EventArgs)
    'Create checkbox text

    DOB_DTP = Microsoft.VisualBasic.Left(dtp_DOB.Value, 10)
    DBS_DTP = Microsoft.VisualBasic.Left(dtp_DBS.Value, 10)

    'DBS
    If cb_DBS.Checked = True Then
        DBS = "T"
    Else
        DBS = "F"
    End If

    'MONDAY
    If CB_Monday.Checked = True Then
        Monday = "T"
    Else
        Monday = "F"
    End If

    'TUESDAY
    If CB_Tuesday.Checked = True Then
        Tue = "T"
    Else
        Tue = "F"
    End If

    'WEDNESDAY
    If CB_Wednesday.Checked = True Then
        Wed = "T"
    Else
        Wed = "F"
    End If

    'THURSDAY
    If CB_Thursday.Checked = True Then
        Thur = "T"
    Else
        Thur = "F"
    End If

    'FRIDAY
    If CB_Friday.Checked = True Then
        Fri = "T"
    Else
        Fri = "F"
    End If

    'Update into Database
    SQLcommand = SQLconnect.CreateCommand

    SQLcommand.CommandText = "UPDATE Staff SET Staff_Surname = '" & txt_Surname.Text & "' , Staff_First_Name = '" & txt_Firstname.Text & "' , Staff_DOB = '" & DOB_DTP & "' , Staff_Contact_No_1 = '" & txt_Contact_1.Text & "' , Staff_Contact_No_2 = '" & txt_Contact_2.Text & "', Staff_Email = '" & txt_email.Text & "' , DBS_Check = '" & DBS & "' , DBS_Renew_Date = '" & DBS_DTP & "' , Work_Monday = '" & Monday & "' , Work_Tuesday = '" & Tue & "' , Work_Wednesday = '" & Wed & "' , Work_Thursday = '" & Thur & "' , Work_Friday = '" & Fri & "' WHERE Username = '"  & Change_Password.Password.usernamechange & "'"

    SQLcommand.ExecuteNonQuery()

    SQLcommand.Dispose()

    MsgBox("Saved!",vbInformation,"Saved!")

End Sub

【问题讨论】:

  • 您是否使用断点检查变量“DOB_DTP”中返回的内容?
  • 那段代码伤了我的眼睛,所以我不得不说:Fri = CB_Friday.Checked 是你所需要的那些 DOW 变量
  • 是的,用断点检查!抱歉,Plutonix 我只是一名 A-Level 学生!编写 SQL 不到一个月,VB.net 不到一年!

标签: sql vb.net sqlite sql-update


【解决方案1】:

我强烈建议您使用 SqlParameters 构建命令。

mySqlcommand.CommandText = "UPDATE [TABLENAME] SET [COLUMN1] = @COLUMN1, [COLUMN2] = @COLUMN2 WHERE [ID] = @ID;"
mySqlcommand.Parameters.Add(New SqlParameter("@COLUMN1", DBNull.Value))
mySqlcommand.Parameters.Add(New SqlParameter("@COLUMN2", DBNull.Value))
mySqlcommand.Parameters.Add(New SqlParameter("@ID", 1))

然后,API 将处理所有格式。

【讨论】:

  • 我以前从未使用过这些!这是一个学校项目! :S
  • 说SqlParameter未定义!
  • 必须导入命名空间System.Data.SqlClient
  • 顺便说一句,您应该像这样创建日期参数:New SqlParameter("@DATECOLUMN", myDateTimePicker.Value)其中“DATECOLUMN”是列的名称。
  • 导入命名空间是什么意思?我需要它变笨!这是一个学校项目!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多