2016-08-03 24 views
-1

下面的代码工作正常,只要我删除"IMAGE_RESOURCE_ID"然而,当添加,连同它的值,我收到日期部分Cannot convert string "" to Date错误。删除"IMAGE_RESOURCE_ID"及其值,它的工作原理没有错误。无法弄清楚我做错了什么。奇数问题插入到sql

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 & ")" 
+3

开始通过打开'选项Strict'然后使用SQL参数。 – Plutonix

+0

在最后设置一个断点,调试'STSQL'来查看语法错误。 –

+0

在您的数据库中,您必须检查IMAGE_RESOURCE_ID的类型,并确定它是一个字符串而不是日期。此外,您是否检查了[ImageID]的值以确保它不是空白并且不包含撇号? – tgolisch

回答

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'),"