我在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------------------|