如何在实际代码编程中使用插入查询



我在SQL中运行这个查询,它很好。

INSERT INTO db.tbl (col1, col2, col3) values ('1.68','2014/01/01 05:00:00', Date_add(col2, interval col1 day_second));

我的代码不起作用,但最后一列的计算是错误的

cmd = New Odbc.OdbcCommand("INSERT INTO room.save(exacttime, depletion_time, time_inputed) values ('" & lblexact.Text & "','" & Trim(TextBox6.Text) & "',' Date_add( exacttime, interval depletion_time day_second)')", con)           
cmd.ExecuteNonQuery()

始终使用参数化/准备好的SQL查询。以下是代码的外观。

Using con As New Odbc.OdbcConnection("...")
    Using cmd As New Odbc.OdbcCommand()
        cmd.Connection = con
        cmd.CommandText = <!--
            INSERT INTO db.tbl (
                col1, 
                col2, 
                col3
            ) VALUES (
                @p1,
                @p2,
                @p3
            );
        -->.Value
        Dim value1 As Double = Double.Parse(labeldatetime.Text)
        Dim value2 As Date = Date.Parse(textboxtime.Text)
        Dim value3 As Date = value2.AddSeconds(value1)
        cmd.Parameters.AddWithValue("@p1", value1)
        cmd.Parameters.AddWithValue("@p2", value2)
        cmd.Parameters.AddWithValue("@p3", value3)
    End Using
End Using

请注意,您不需要XComment,我只是使用它来提高可读性。

PS:我不熟悉vb.net,所以不确定这是否是正确的方法(所以,请不要投否决票!!),。但根据sql,有一些不需要的单引号需要删除。

cmd = New Odbc.OdbcCommand("INSERT INTO room.save(exacttime, depletion_time, time_inputed) values ('" & lblexact.Text & "','" & Trim(TextBox6.Text) & "',
Date_add( exacttime, interval depletion_time day_second))", con)   
^                                                        ^
|-----------------Single Quotes Removed------------------|  

最新更新