我正在尝试使用 MySql 数据库中的记录填充数据集,然后遍历数据集中表的每条记录,创建并填充每个通过循环的自定义数据对象,最后重新调整创建的数据对象列表.
我遇到的问题是在尝试创建每个数据对象时出现错误:
错误:
System.InvalidCastException:指定的强制转换无效。
该错误突出显示了这行代码:var newsRelease = new NewsRelease
我怀疑以下两个问题之一:1)由于 MySql DateTime 数据类型与 C# DateTime 数据类型的格式问题,无法创建对象/ 2)选择查询实际上没有返回任何内容,因此没有任何内容可以填充 NewsRelease 对象和。
我已经尝试测试这两个问题,但似乎无法确定是否真的是问题所在。任何关于我的问题是什么以及如何解决它的见解都非常感谢。
public List<NewsRelease> SELECT()
{
MySqlConnection connection = new MySqlConnection(ConnectionString);
MySqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM NewsReleases";
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
List<NewsRelease> NewsReleases = new List<NewsRelease>();
foreach (DataRow row in ds.Tables[0].Rows)
{
var newsRelease = new NewsRelease
{
NewsReleaseId = (int)row["NewsReleaseId"],
Title = (string)row["Title"],
Content = (string)row["Content"],
Images = Convert.ToBoolean((int)row["Images"]),
MediaAdvisory = Convert.ToBoolean((int)row["MediaAdvisory"]),
PublicAdvisory = Convert.ToBoolean((int)row["PublicAdvisory"]),
Time = (DateTime)row["Time"],
DatePublished = (DateTime)row["DatePublished"],
DateCreated = (DateTime)row["DateCreated"],
DateModified = (DateTime)row["DateModified"],
ModifiedBy = (string)row["ModifiedBy"],
HasFrenchVersion = Convert.ToBoolean((int)row["HasFrenchVersion"])
};
NewsReleases.Add(newsRelease);
}
return NewsReleases;
}