插入sql的奇怪问题

时间:2016-08-03 17:49:21

标签: sql vb.net oracle insert

只要我删除"IMAGE_RESOURCE_ID",下面的代码就可以正常运行。但是,当添加它及其值时,我会在日期部分Cannot convert string "" to Date上收到错误。删除"IMAGE_RESOURCE_ID"及其值,它可以正常运行。无法弄清楚我做错了什么。

STSQL = "insert into mpcs.shop_inventory"
        STSQL = STSQL & " ("
        STSQL = STSQL & "SI_KEY,"
        STSQL = STSQL & "INV_TYPE,"
        STSQL = STSQL & "MTI_PART_NO,"
        STSQL = STSQL & "BUILD_NO,"
        STSQL = STSQL & "SERIAL_NO,"
        STSQL = STSQL & "HOME_LOCATION,"
        STSQL = STSQL & "HOME_LOCATION_SUB,"
        STSQL = STSQL & "DESCRIPTION,"
        STSQL = STSQL & "CATEGORY,"
        STSQL = STSQL & "QUANTITY,"
        STSQL = STSQL & "MIN_QTY,"
        STSQL = STSQL & "CONSUMABLE,"
        STSQL = STSQL & "CUST_PART_NO,"
        STSQL = STSQL & "UOM,"
        STSQL = STSQL & "WEIGHT,"
        STSQL = STSQL & "SCRAP_FLAG,"
        STSQL = STSQL & "NEXT_CAL,"
        STSQL = STSQL & "INTERVAL,"
        STSQL = STSQL & "SIZE_1,"
        STSQL = STSQL & "SIZE_2,"
        STSQL = STSQL & "SIZE_3,"
        STSQL = STSQL & "IMAGE_RESOURCE_ID"
        STSQL = STSQL & ") values ("

        STSQL = STSQL & varSi & "," 'SI_KEY
        STSQL = STSQL & "'" & strINV_TYPE_selected & "'," 'INV_TYPE
        STSQL = STSQL & "'" & lblMTI.Text & "'" & "," 'MTI_PART_NO
        STSQL = STSQL & cboBuildNumber.Text & "," 'BUILD_NO
        STSQL = STSQL & "'" & txtSerialNumber.Text & "'," 'SERIAL_NO
        STSQL = STSQL & "'" & cboLocation.Text & "'," 'HOME_LOCATION
        STSQL = STSQL & "'" & cboLocationSub.Text & "'," 'HOME_LOCATION_SUB
        STSQL = STSQL & "'" & txtDescription.Text & "'," 'DESCRIPTION
        STSQL = STSQL & "'" & ListBox1.SelectedValue & "'," 'CATEGORY
        If chkConsumable.Checked Then
            STSQL = STSQL & txtQuan.Text & "," 'QUANTITY
            STSQL = STSQL & txtMin.Text & "," 'MIN_QTY
            STSQL = STSQL & "1," 'CONSUMABLE
        Else
            STSQL = STSQL & "1," 'QUANTITY
            STSQL = STSQL & "0," 'MIN_QTY
            STSQL = STSQL & "0," 'CONSUMABLE
        End If
        STSQL = STSQL & "'" & txtCustomerPartNumber.Text & "'," 'CUST_PART_NO
        STSQL = STSQL & "'" & txtUOM.Text & "'," 'UOM
        STSQL = STSQL & "'" & txtWeight.Text & "'," 'WEIGHT
        If chkScarp.Checked Then
            STSQL = STSQL & "1," 'SCRAP_FLAG
        Else
            STSQL = STSQL & "0," 'SCRAP_FLAG
        End If
        Dim ctoDate As Date = lblNextCal.Text
        STSQL = STSQL & "to_date('" & Format(ctoDate, "dd-MMMM-yyyy") & "','DD-MON-YYYY'),"
        STSQL = STSQL & txtCalInvdays.Text & ","
        If chkElectrode.Checked Then
            STSQL = STSQL & cboSizeOD.Text & ","
            STSQL = STSQL & cboSizeID.Text & ","
            STSQL = STSQL & cboSizeLength.Text & ","
        Else
            STSQL = STSQL & "NULL" & ","
            STSQL = STSQL & "NULL" & ","
            STSQL = STSQL & "NULL" & ","
        End If
        STSQL = STSQL & "'" & ImageID & "'" 'IMAGE_RESOURCE_ID
        STSQL = STSQL & ")"

1 个答案:

答案 0 :(得分:0)

您在SCRAP_FLAGNext_Cal列值之间错过了逗号[,]:

If chkScarp.Checked Then
    STSQL = STSQL & "1," 'SCRAP_FLAG
Else
   STSQL = STSQL & "0,"  'SCRAP_FLAG
End If
Dim ctoDate As Date = lblNextCal.Text
STSQL = STSQL & "to_date('" & Format(ctoDate, "dd-MMMM-yyyy") & "','DD-MON-YYYY'),"