是否可以使用Oledb从数据库中检索整数值

本文关键字:检索 整数 数据库 可以使 Oledb 是否 | 更新日期: 2023-09-27 18:00:39

我的代码成功地从数据库中读取了字符串值,但当我想导入一个整数值时,它会将其读取为空值(即使数据库已将值分配给该字段)

我的代码:

query = "SELECT * FROM Enemies";
da = new OleDbDataAdapter(query, conn);
da.Fill(dt); // dt = DataTable
wea = new Weapon(Convert.ToString(dt.Rows[randomItem][1])); // Works perfect for only string value retrieval       
// randomItem = Randomly chooses a row from the database to use for object construction 

如果我使用以下代码,我会收到一个"InvalidCastExcpetion未经处理"异常。"对象不能从DBNull强制转换为其他类型"

wea = new Weapon(Convert.ToInt32(dt.Rows[randomItem][2])) // The 2 gets the damage column from the database

是否可以使用Oledb从数据库中检索整数值

非常感谢您的回答,我找到了一个解决方案,通过创建一个单独的变量来进行转换,然后将值传递到武器对象创建中。我觉得我的原始代码应该可以工作,但如果你在直接调用值后进行整数转换,它似乎不喜欢

代码:

 int weaponDamage = Convert.ToInt32(dt.Rows[randomItem][2]);
 wea = new Weapon(weaponDamage);