数据表单元格数学



我对C#的整个过程非常陌生,非常感谢您在这方面的智慧:我正在制作一个类似游戏的东西,需要为一群人存储并不断更新数据库。

目前我正在尝试创建一个DataTable dt;

添加列dt.Colums.Add("age", typeof(int));

添加行dt.Rows.Add(10);

现在,我想动态调整保存年龄int值为10到11的单元格的内容。

我尝试dt.Rows[0]["age"] += 1;

然而,我得到了以下内容:

错误CS0266无法将类型"object"隐式转换为"int"。存在显式转换(是否缺少强制转换?(

我很困惑为什么"单元格"返回的是对象而不是int。如何直接用单元格的内容进行数学运算?

此处为dt。Rows[0]["age"]是一个对象,而不是Integer类型,因此运算符"+="不能应用于"object"one_answers"int"类型的操作数试试这个,

dt.Rows[0]["age"] = Convert.ToInt16(dt.Rows[0]["age"]) + 1;

即使设置了列的数据类型,DataRow的索引器也会返回一个object。您可以将值强制转换为int:

dt.Rows[0]["age"] = (int)(dt.Rows[0]["age"]) + 1;

或使用Field扩展方法

dt.Rows[0]["age"] = dt.Rows[0].Field<int>("age") + 1;

请注意,+=在这两种情况下都不起作用,因为您必须使用表达式(强制转换或方法调用(来获取值。

最新更新