VB.net:INSERT INTO查询生成所有" -1"在Access数据库中

时间:2016-09-09 19:04:25

标签: sql vb.net ms-access sql-insert

我有以下代码和查询:

Dim sqlCom As New OleDb.OleDbCommand("INSERT INTO clasificador (codigo, deudor, oportunidad, banca, ejecutivo, garantia, ciiu, ras, actividad, fecha, analista, estatus, concepto, ult_act, ingresos, tipo, cumplimiento, multa_pot, roa2, ie2, ant, act, covenants, faltas, oportunidades, costos, pmaa, potencial) VALUES (codigo=@codigo, deudor=@deudor, oportunidad=@oportunidad, banca=@banca, ejecutivo=@ejecutivo, garantia=@garantia, ciiu=@ciiu, ras=@ras, actividad=@actividad, fecha=@fecha, analista=@analista, estatus=@estatus, concepto=@concepto, ult_act=@ult_act, ingresos=@ingresos, tipo=@tipo, cumplimiento=@cumplimiento, multa_pot=@multa_pot, roa2=@roa2, ie2=@ie2, ant=@ant, act=@act, covenants=@covenants, faltas=@faltas, oportunidades=@oportunidades, costos=@costos, pmaa=@pmaa, potencial=@potencial)", conn)
        sqlCom.Parameters.AddWithValue("@codigo", txtCodigo.Text)
        sqlCom.Parameters.AddWithValue("@deudor", txtDeudor.Text)
        sqlCom.Parameters.AddWithValue("@oportunidad", txtOportunidad.Text)
        sqlCom.Parameters.AddWithValue("@banca", drpBanca.Text)
        sqlCom.Parameters.AddWithValue("@ejecutivo", txtEjecutivo.Text)
        sqlCom.Parameters.AddWithValue("@garantia", drpGarantia.Text)
        sqlCom.Parameters.AddWithValue("@ciiu", txtCIIU.Text)
        sqlCom.Parameters.AddWithValue("@ras", txtRAS.Text)
        sqlCom.Parameters.AddWithValue("@actividad", txtActividad.Text)
        sqlCom.Parameters.AddWithValue("@fecha", dteFecha.Text)
        sqlCom.Parameters.AddWithValue("@analista", txtAnalista.Text)
        sqlCom.Parameters.AddWithValue("@estatus", drpEstatus.Text)
        sqlCom.Parameters.AddWithValue("@concepto", drpConcepto.Text)
        sqlCom.Parameters.AddWithValue("@ult_act", dteUltAct.Text)
        sqlCom.Parameters.AddWithValue("@ingresos", txtIngresos.Text)
        sqlCom.Parameters.AddWithValue("@tipo", txtTipo.Text)
        sqlCom.Parameters.AddWithValue("@cumplimiento", drpCumplimiento.Text)
        sqlCom.Parameters.AddWithValue("@multa_pot", txtMultaPot.Text)
        sqlCom.Parameters.AddWithValue("@roa2", txtROA2.Text)
        sqlCom.Parameters.AddWithValue("@ie2", txtIE2.Text)
        sqlCom.Parameters.AddWithValue("@ant", txtAnt.Text)
        sqlCom.Parameters.AddWithValue("@act", txtAct.Text)
        sqlCom.Parameters.AddWithValue("@covenants", txtCovenants.Text)
        sqlCom.Parameters.AddWithValue("@faltas", drpFaltas.Text)
        sqlCom.Parameters.AddWithValue("@oportunidades", txtOportunidades.Text)
        sqlCom.Parameters.AddWithValue("@costos", txtCostos.Text)
        sqlCom.Parameters.AddWithValue("@pmaa", txtPMAA.Text)
        sqlCom.Parameters.AddWithValue("@potencial", txtPotencial.Text)
        Try
            'MsgBox("GO!")
            Select Case MsgBox("¿Seguro que desea crear?", MsgBoxStyle.YesNo, "Confirmar")
                Case MsgBoxResult.Yes
                    sqlCom.ExecuteNonQuery()
                    MsgBox("¡Listo!")
                    Me.Show()
                Case MsgBoxResult.No
            End Select
            'MsgBox("DONE!")
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

我没有任何错误,一切正常,但插入数据库的信息都是" -1" (没有引号)在所有字段中(除了日期字段有" 12/29 / 1899")。我在Stackoverflow中经历了大概20个问题,但它们都是一般语法或拼写错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

其中每一个都是错误的:

INSERT ...  VALUES (codigo=@codigo, deudor=@deudor
                       ^^^^^^^^

您没有插入您的值,您需要插入一堆相等测试的结果。你正在插入一条记录,所以没有测试是否相等,所有的测试都失败了,因此你的-1。

插入语法

INSERT INTO sometable (field1, field2, ...) VALUES (value1, value2, ...)

所以你应该有这个:

INSERT ... VALUES (@codigo, @deudor, etc....)