在command.Parameters.Add(“_ trdate”,格式(dteDate,“yyyy-MM-dd”))中获取此错误

时间:2014-01-25 12:27:02

标签: vb.net function postgresql componentone

  command.CommandType = CommandType.StoredProcedure
            command.CommandText = "{?=call gtab09_INSERT(_acyrid,_RepId,_DrId,_vrid,_mode, _trno, _trdate, _acid, _vrno, _SuppId,_custname,_netamt,_disrate,_disamt,_RoundOff,_jrmid, _userid,_userdtm,_VSNo,_RecdAmt,_cstrate,_cstsaleamt,_cstamt,_tdrate,_tdamt,_cdrate,_cdamt,_CessRate,_CessAmt,_odesc1,_oamt1,_CashCredit,_OrderNo,_OrderDate,_CustAdd2,_Remarks,_WhoRetSl,_PatName,_DrName,_FormId,_SalesMan,_CFMode,_PatId,_StkPtId,_DisType,_BranchID)}"
            command.Parameters.Add("_acyrid", gintAcYrId)
            command.Parameters.Add("_RepId", Val(cboRep.SelectedValue))
            command.Parameters.Add("_DrId", Val(cboDoctor.SelectedValue))
            command.Parameters.Add("_vrid", mlngVrId)
            command.Parameters.Add("_mode", Val(cboMode.SelectedIndex))
            command.Parameters.Add("_trno", txtslno.Text)
            command.Parameters.Add("_trdate", Format(dteDate, "yyyy-MM-dd"))
            command.Parameters.Add("_acid", CustAcId)

我正在

Unable to cast object of type 
'C1.Win.C1Input.C1DateEdit' to type 'System.IConvertible' error

command.Parameters.Add("_trdate", Format(dteDate, "yyyy-MM-dd"))

VB.net 2008日期字段中使用PostgreSqlpostgres数据库应采用yyyy-MM-dd格式。这是一个插入函数

1 个答案:

答案 0 :(得分:1)

您当前的代码正在尝试将C1DateEdit控件转换为无效操作的格式化字符串。我想您想要从该控件转换DateTime值:

command.Parameters.Add("_trdate", Format(dteDate.Value, "yyyy-MM-dd"))

假设dteDate.Value是从DateTime获取C1DateEdit值的正确方法,因为我从未在生活中使用过ComponentOne控件。无论如何,如果_trdate参数在postgres中期望DateTime类型,则可以将DateTime对象作为参数值传递。无需处理格式化,它将自动处理。这样的事情(应用相同的假设):

command.Parameters.Add("_trdate", dteDate.Value)

希望这能解决你的问题。