gpt4 book ai didi

c# - 使用 C# 的 ms Access 查询中指定的强制转换不是有效异常

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:44 24 4
gpt4 key购买 nike

虽然我的数据类型在 db 中是正确的,但是我有这个奇怪的强制转换异常:

string sql =
string.Format(
@"select aim_network_id,aim_network_name,oxinetwork_id,pack_id,pack_name,p_face_value,pm_prefix from Operator where aim_network_id='{0}'",
gridbackOffice["aim_network_id", gridbackOffice.CurrentCell.RowIndex].Value);
OleDbCommand getSelectedGridDatecmd = new OleDbCommand(sql, conn);
OleDbDataReader reader = getSelectedGridDatecmd.ExecuteReader();
while (reader.Read())
{
txtAimNetworkID.Text = reader.GetString(0);
txtAimNetworkName.Text = reader.GetString(1);
txtPARNetworkID.Text = reader.GetString(2);
txtPARFaceValue.Text = reader["p_face_value"].ToString();
//in above line if i'm doing this `reader.GetString(5)` then i'm getting specified cast exception and that to randomly i.e some time it works fine and suddenly sometime gives this exception
txtPARPackID.Text = reader.GetString(3);
txtPARPackName.Text = reader.GetString(4);
txtPARPMPrefix.Text = reader["pm_prefix"].ToString();
}

我有点困惑,如果我使用这个 reader["p_face_value"].ToString() 那么我的代码运行非常流畅但是使用这个 reader.GetString 有什么问题(5) ,根据我的说法,这两种方法都返回字符串,没有人遇到过这个错误 b4 ?....错误出现在 while 循环的第 4 行和第 7 行。

异常:指定的转换无效(InvalidCastException 未处理)

最佳答案

根据 MSDN,OleDbDataReader.GetString()在尝试转换为字符串之前不执行任何转换 - 因此检索到的数据必须已经是一个字符串。

如果该列中的值有可能为空,文档建议您应该 check if the value is null first :

if (  !reader.IsDBNull(5) ) {
txtPARFaceValue.Text = reader.GetString(5);
}

在空值上调用 reader["p_face_value"] 返回 DBNull - 当你打电话时 ToString() on DBNull ,你得到一个空字符串。

关于c# - 使用 C# 的 ms Access 查询中指定的强制转换不是有效异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366296/

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