更新功能在vb.net中不起作用

时间:2018-05-04 01:18:08

标签: vb.net

目前我正在使用VB.NET开发一个系统。我有UPDATE的以下查询。在SQL Developer

中运行时,此查询有效
UPDATE CCS2_TBL_INSPECTION_STANDARD SET CCSEQREVITEM = :CCSEQREVITEM, 
CCSREVEFFECTIVEDATE = TO_DATE(:CCSREVEFFECTIVEDATE,'DD/MM/YYYY') WHERE CCSEQID 
= :CCSEQID

但是当我尝试在VB.net中应用此查询时,它无法正常工作。实际上,此更新功能的流程是可行的,但是当我更新数据时,它无法正常工作。例如,我想要来自' Ali'的更新名称。到了#Abu;当我点击更新按钮时,弹出窗口会显示"更新成功"但这个名字并没有变成“阿布”,它仍然是“阿里”。执行时没有错误。谁知道?在VB.net代码下面:

Protected Sub editInspectionRev(eqid As String)

    Dim xSQL As New System.Text.StringBuilder
    xSQL.AppendLine("UPDATE CCS2_TBL_INSPECTION_STANDARD")
    xSQL.AppendLine("SET")
    xSQL.AppendLine("CCSEQREVITEM = :CCSEQREVITEM, CCSREVEFFECTIVEDATE = TO_DATE(:CCSREVEFFECTIVEDATE,'DD/MM/YYYY')")
    xSQL.AppendLine("WHERE CCSEQID = :CCSEQID")

    Using cn As New OracleConnection(ConString)
        cn.Open()
        Dim cmd As New OracleCommand(xSQL.ToString, cn)
        cmd.Connection = cn


        cmd.Parameters.Add(":CCSEQREVITEM", txtRevContent.Text)
        cmd.Parameters.Add(":CCSREVEFFECTIVEDATE", txtRevEffDate.Text)


        cmd.Parameters.Add(":CCSEQID", eqid)

        cmd.ExecuteNonQuery()
        cn.Close()

    End Using
    success3.Visible = True
    DisplayRevisionDetails()

End Sub

1 个答案:

答案 0 :(得分:0)

cmd.Parameters.Add(":CCSEQREVITEM", txtRevContent.Text)
cmd.Parameters.Add(":CCSREVEFFECTIVEDATE", txtRevEffDate.Text)
cmd.Parameters.Add(":CCSEQID", eqid)

此代码不正确。您没有收到编译错误,因为有一个不推荐使用的.Add方法,它接受一个字符串和一个对象。这已被.Add取代,它接受字符串和数据库数据类型。您可能正在寻找的是.AddWithValue,它可能是其他更新函数中使用的。

返回.Add方法。第一个参数是参数的名称。第二个是参数的DataType,第三个是大小。可能存在没有大小的过载。然后设置.Value属性。

cmd.Parameters.Add(":CCSEQREVITEM", OracleType.VarChar, 80).Value = txtRevContent.Text
cmd.Parameters.Add(":CCSREVEFFECTIVEDATE",OracleType.VarChar, 80).Value =  txtRevEffDate.Text
cmd.Parameters.Add(":CCSEQID", OracleType.Int32).Value = eqid