当前位置: 代码迷 >> VB Dotnet >> vb.net+access 数据插入有关问题
  详细解决方案

vb.net+access 数据插入有关问题

热度:48   发布时间:2016-04-25 02:05:56.0
vb.net+access 数据插入问题
1个SQL插入语句不知道怎么问题出错!困扰了一天了。

Dim n5 As String = "" & RQ.Value.Year.ToString & "-" & mm & "-" & "31"
s2 = "insert into 折旧表(ID,QJ,SL,JG,SJ) "
s2 += "values (" & i1 & "," & nv & ",0,0,'" & n5 & "')"
 错误提示:“标准表达式中数据类型不匹配。”

改成:
s2 += "values (" & i1 & "," & nv & ",0,0,#" & n5 & "#)"
错误提示:日期的语法错误 在查询表达式 '#2014-06-31' 中。



真的没招了 求大神指点!
------解决思路----------------------
看下你access数据库时间字段的格式,通用还是短日期?
------解决思路----------------------
把你S2的值跟出来,放在Access执行一下,看看哪的问题,估计是语句没写对...N5是字符串要转换成数据的时间格式才能插入进去...
------解决思路----------------------
把n5换成mm/dd/yyyy格式,s2用第二个(含#)。

------解决思路----------------------
你是 vb.net 

dt是时间类型,
  Dim sql As String = "insert into dt(dt) values(@dt)"
        Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Windows.Forms.Application.StartupPath + "\\temp.mdb")
        con.Open()
        Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
        cmd.Parameters.Add("@dt", OleDbType.Date)
        cmd.Parameters("@dt").Value = Convert.ToDateTime("2014/6/29  15:00:00")
        cmd.ExecuteNonQuery()
        ListBox1.Items.Add("成功添加")
        cmd.Dispose()
        con.Close()



------解决思路----------------------
2014-06-31
你火星来的吧,6月哪来的31日

Dim n5 As String = "" & RQ.Value.Year.ToString & "-" & mm & "-" & "31"
改成
Dim n5 As String =  convert.todatetime(RQ.Value.Year.ToString & "-" & mm & "-" & "01").addMonths(1).addDays(-1).toString("yyyy-MM-dd")
------解决思路----------------------
引用:
2014-06-31
你火星来的吧,6月哪来的31日

Dim n5 As String = "" & RQ.Value.Year.ToString & "-" & mm & "-" & "31"
改成
Dim n5 As String =  convert.todatetime(RQ.Value.Year.ToString & "-" & mm & "-" & "01").addMonths(1).addDays(-1).toString("yyyy-MM-dd")


这个才是正解啊
  相关解决方案