【问题标题】:value of type 'string' cannot be converted to 'Devart.data.postgresql.PgSqlParameter'“字符串”类型的值无法转换为“Devart.data.postgresql.PgSqlParameter”
【发布时间】:2014-06-06 09:14:21
【问题描述】:

以下是我的PostgreSQL 表结构和要插入到表中的vb.net 代码。使用Devart's Component For PostgreSQL Connect

表 gtab83

    CREATE TABLE gtab83
(
  orderid integer NOT NULL DEFAULT nextval('seq_gtab83_id'::regclass),
  acid integer,
  slno integer,
  orderdte date
)

表 gtab84

    CREATE TABLE gtab84
(
  orderdetid integer DEFAULT nextval('seq_gtab84_id'::regclass),
  productid integer,
  qty integer,
  orderid integer
)

要插入上表的代码如下

        '1.)INSERT INTO gtab83(orderid,acid, slno, orderdte) VALUES (?, ?, ?);
        '2.)INSERT INTO gtab84(orderdetid,productid, qty, orderid)  VALUES (?, ?, ?);

        Try
            Dim cmd As PgSqlCommand = New PgSqlCommand("", Myconnstr)
            cmd.CommandText = _
            "INSERT INTO GTAB83(ACID,SLNO,ORDERDTE)" & _
            "VALUES " & _
            "(@acid,@slno,@orderdte);"
            Dim paramAcid As PgSqlParameter = New PgSqlParameter("@acid", PgSqlType.Int, 0)
            Dim paramSlno As PgSqlParameter = New PgSqlParameter("@slno", PgSqlType.Int, 0)
            Dim paramOrderdte As PgSqlParameter = New PgSqlParameter("@orderdte", PgSqlType.Date, 0)
            paramAcid = cboCust.SelectedValue
            paramSlno = txtOrderNO.Text #ERROR#
            paramOrderdte = (txtDate.Text, "yyyy-MM-dd") #ERROR#
        Catch ex As Exception

        End Try

错误:

“字符串”类型的值无法转换为“Devart.data.postgresql.PgSqlParameter”

【问题讨论】:

  • 你可能想要paramAcid.Value = cboCust.SelectedValue
  • 你说得对……我忘了放.value

标签: vb.net postgresql sql-insert parameterized


【解决方案1】:

我认为您需要将它们转换为 Integerdatetime。也许是这样的:

paramSlno.Value = integer.Parse(txtOrderNO.Text)
paramOrderdte.Value =  DateTime.Parse(txtDate.Text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 2017-12-30
    • 2018-03-10
    • 2017-01-25
    相关资源
    最近更新 更多