[英]Why am I getting "System.InvalidCastException: Specified cast is not valid"?
此代码用于使用System.Data.SqlClient
的 C# SqlDatAdapter 从 SQL 服务器获取我的图书馆应用程序中的所有书籍。 这是将所有书籍添加到List<Book>
,其中 book 是声明的对象类。
allBooks.Add(new Book((String)i["title"], (String)i["author"], (Boolean)i["checkedOut"], (String)i["checkedOutTo"], (DateTime)i["dueDate"], (Double)i["Dues"], (int)i["extensions"], (String)i["imageURL"], (String)i["description"]));
当你有这个位置时,你必须把那一行分割成多于一个代码行。 使用临时变量来存储每个数组访问 + 转换操作的其余部分。 这样你就会得到一个有意义的线路/操作,这就是问题所在。 像这样的东西:
string title = i["title"];
string author = i["author"];
//lines omited
Book temp = new Book (title, author /*remaining temporary variables*/);
allBooks.Add(temp);
不要担心由此产生的任何性能或内存影响。 普通编译器和 JiT 编译器非常擅长确定它可以在发布版本中删除这些变量。 有时它们甚至在 Debug 版本中也很好,强制异常可能很困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.