c# - 如何将 DBObject 值转换为 long
问题描述
我想将DBObject
值转换为长。我在 db 中具有类似id = 24100001000001
.
我正在使用这段代码:
String totalcount = "SELECT MAX(id) FROM table";
SqlCommand cmd1 = new SqlCommand(totalcount, con);
cmd1.ExecuteNonQuery();
long count = (long)(cmd1.ExecuteScalar());
使用此代码,我收到一个错误:
System.InvalidCastException : sSpecified 强制转换无效。
在 c:\Users\aBhiShEkrANAa\Desktop\ABC\Prroject\Default.aspx.cs:line 43 中的 Default.method1(Object sender, EventArgs e)
我只想把这个 id 值变成 long。
解决方案
稍微简单一点的方法是为工作使用正确的类型:
var value = (long?)command.ExecuteScalar();
如果要返回默认值而不是可为空的:
var value = (long?)command.ExecuteScalar();
return value.GetValueOrDefault();
可空值将处理DbNull
和使用可空值将为其他开发人员/读者提供更多信息。
请注意,object
返回的实际值ExecuteScalar
是很长的,使用Convert.ToInt64
会产生很多开销,因为转换要做更多的工作。
推荐阅读
- python - 将数据从数据框附加到 JSON
- asynchronous - 使用c ++的Grpc异步双向客户端
- asp.net - 如何在 Asp.net 中隐藏错误请求 400 的响应标头
- python-3.x - 格式化电脑后出现编译问题
- php - 如何在 CodeIgniter 中使用 JWPlayer?
- docusaurus - 使侧边栏不可折叠并始终在 docusaurus V2 经典预设中展开
- python - Visual Studio Code:在没有相应 .py 文件的情况下使用 .pyd 文件时可以使用 Intellisense /“转到定义”吗?(pywin32)
- c# - 如何在 Polly 中创建策略以支持 http 响应 retry-after 标头
- vue.js - vue渲染的问题 Json返回良好但不显示
- java - 如何分别打印给定数字的每个数字?