我正试图使用一个小型VB.net应用程序以编程方式将一条记录插入SQL Server 2012数据库。当我执行应用程序时,会捕获以下OleDBException:
表达式中未定义的函数"convert"
我的VB是这样的:
Dim conn As OleDbConnection = New OleDbConnection(connstring)
Dim comm As OleDbCommand = New OleDbCommand(insertcommand)
comm.Connection = conn
Try
conn.Open()
comm.ExecuteNonQuery()
Catch ex As Exception
txbErrorSummary.Text += ex.ToString()
End Try
insertcommand的样子:
INSERT INTO XXX([JCN], [DOT])
VALUES('PD7654',convert(varchar, '2/17/2014', 101))
有趣的是,当我将insert命令剪切并粘贴到SQL Management Studio中时,它可以毫不费力地插入记录。想法
感谢的帮助
我建议您用其他方式。与其尝试在SQL内部运行convert,不如在.NET应用程序中执行此操作,并传递已经存在的DateTime
m对象。
convert
函数的问题在于它不是一个OleDB有效函数。如果使用SqlCommand,它可能会正常工作,因为此函数是T-SQL,仅对MS SQL 有效