【问题标题】:How can I fix the oledbexception: Undefined function 'convert' in expression?如何修复 oledbexception: Undefined function 'convert' in expression?
【发布时间】:2015-03-30 19:10:24
【问题描述】:

我正在尝试使用小型 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

插入命令的样子:

INSERT INTO XXX([JCN], [DOT]) 
VALUES('PD7654',convert(varchar, '2/17/2014', 101))

有趣的是,当我将 insert 命令剪切并粘贴到 SQL Management Studio 中时,它可以毫无问题地插入记录。有什么想法吗?
感谢帮助

【问题讨论】:

  • 你为什么使用 OleDbConnection 而不是 SqlConnection?

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


【解决方案1】:

我会建议您以其他方式执行此操作。不要尝试在 SQL 中运行转换,而是在 .NET 应用程序中执行此操作并传递已经 DateTimem 对象。

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

【讨论】:

  • 非常感谢。 +1 史蒂夫。他碰上了它,但我没有注意到它不是 OleDB 函数。我使用了 oledb,因为我从访问数据库中读取并插入到 sql 服务器数据库中。我没想到要切换插件上的连接类型。一切都很好,谢谢 Garath/Steve
猜你喜欢
  • 2022-12-02
  • 1970-01-01
  • 2022-12-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 2022-09-24
  • 2021-11-12
  • 2015-09-18
相关资源
最近更新 更多