如何修复oledbexception:未定义的函数'转换'在表达?

时间:2015-03-30 19:10:24

标签: sql .net sql-server vb.net

我试图使用一个小的VB.net应用程序以编程方式将单个记录插入到SQL Server 2012数据库中。当我执行应用程序时,捕获以下OleDBException:

  

未定义的功能'转换'在表达

我的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))

有趣的是,当我将insertcommand剪切并粘贴到SQL Management Studio中时,它会毫无困难地插入记录。思考?
感谢帮助

1 个答案:

答案 0 :(得分:1)

我建议你以其他方式这样做。而不是尝试在SQL中运行转换,而是在.NET应用程序中执行此操作并传递已经DateTime m对象。

convert函数的问题是它不是OleDB有效函数。如果您使用SqlCommand它可能会正常工作,因为此函数是T-SQL仅对MS SQL有效