gpt4 book ai didi

.net - 从数据库检索数据时进行强制转换还是转换?

转载 作者:行者123 更新时间:2023-12-02 12:01:12 25 4
gpt4 key购买 nike

当访问从数据库检索的 DataTable 中的对象时,是否有任何理由不将该对象转换为所需的类型,或者是否有理由使用转换?我知道当我们知道我们正在使用什么数据类型时,规则就会被强制转换,而当我们尝试将数据类型更改为不是的数据类型时,规则就会被转换。假设我们知道列中存储的数据类型,强制转换似乎是合适的,但是是否存在任何数据库类型问题意味着我们不能依赖它?

最佳答案

出于你所说的原因,我总是会选角。我知道您需要处理的问题是:

  1. 您显然需要能够处理 DBNull(例如,通过使用 Convert.IsDBNull 进行测试)

  2. 对于 ExecuteScalar,我相信您需要检查 null 以及 DBNull。

  3. 即使对于声明为 INT 的列,SQL Server @@IDENTITY 和 SCOPE_IDENTITY 函数也会返回数字(十进制)。在这种情况下,您可以强制转换两次“(int)(decimal)value”或在 T-SQL 代码中处理它,例如:.

    插入 MyTable ...从 MyTable WHERE AutoIdColumn = SCOPE_IDENTITY() 中选择 AutoIdColumn

INSERT INTO MyTable ...
SELECT CAST(SCOPE_IDENTITY() AS INT)

关于.net - 从数据库检索数据时进行强制转换还是转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com