【问题标题】:DbDataAdapter with value from a db function具有来自 db 函数的值的 DbDataAdapter
【发布时间】:2015-08-12 15:15:38
【问题描述】:

是否可以使用 datarow[] 进行 tableadapter 更新 对于日期时间列,该值设置为 db 函数 ea getdate()、userDefinedFunctionReturnDateTime() 等。

所以不是来自数据行[]的固定值

INSERT INTO X(A,B,C)VALUES(1, '2015-01-01 00:00', 'name')

但函数值

INSERT INTO X(A,B,C)VALUES(1, getdate(), 'name')

类似datarow.ItemArray[1] = "getdate()"; 的东西?

【问题讨论】:

    标签: c# sql dataadapter


    【解决方案1】:

    是的,只需根据您的 SQL 数据库识别的命令设置插入值,它应该可以工作。

    Ex: MySQL could use NOW()
    SQL-Server could use GetDate()
    

    完全按照您的采样。唯一的问题是,您不会使用参数值,只需使用实际参数占位符的固定上下文 INSTEAD 构建您的插入语句。

    您是否有特定的方式来构建插入语句?还是让它们以某种方式自动生成?

    【讨论】:

    • 不完全有效。当使用 datarow.SetField(2, "getdate()");我收到错误消息“字符串未被识别为有效的 DateTime。从索引 0 开始有一个未知单词。无法在 TIME_STAMP 列中存储 。预期类型为 DateTime。”
    • @JeroendeJong,“SetField”是 SQL-Server 中的用户定义函数还是 C# 中的函数。如果在 SQL-Server 中,请不要在 getDate() 调用周围加上引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多