c# - 从 DataRow 单元格解析 int

标签 c#

<分区>

如何从 DataRow 单元格中解析 int 值?

Int32.Parse(item["QuestionId"].ToString());

此代码有效,但看起来过于冗长。 也可以处理 DBNull 值吗?

最佳答案

如果你知道它是一个int,你应该相应地转换它,这是最安全和最有效的方法:

int questionId = item.Field<int>("QuestionId");  // similar to (int) item["QuestionId"]

Field 方法也支持可空类型,所以如果它可以为空:

int? questionId = item.Field<int?>("QuestionId");
if(questionId.HasValue) Console.Write(questionId.Value);

如果它实际上是一个 string(为什么?)您必须将它转换为 string 并使用 int.Parse:

int questionId = int.Parse(item.Field<string>("QuestionId"));

如果你真的不知道它的类型是什么,你可以使用System.Convert.ToInt32:

int questionId = System.Convert.ToInt32(item["QuestionId"]);

关于c# - 从 DataRow 单元格解析 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719016/

相关文章:

c# - Azure blob 文件名中的模式搜索

c# - 全职写在一个单元格里

c# - 如何在 C# 中对具有原始顺序的列表进行排名

c# - 覆盖属性 setter 和 getter

c# - Ninject OnePerRequestBehaviour 似乎无法正常工作?

c# - 多级DI重构

Convert.ToBoolean 的 c# 默认值

C#/N 休眠 : Association references unmapped class

c# - 反射权限异常

c# - 使用 NHibernate 跨多个数据库填充对象