gpt4 book ai didi

c# - SQL查询的转换结果-System.InvalidCastException

转载 作者:行者123 更新时间:2023-12-03 19:42:33 26 4
gpt4 key购买 nike

我正在尝试存储select查询的结果。返回的值作为integer存储在Sqlite中。

我决定尝试此答案中给出的内容:https://stackoverflow.com/a/870771

我的代码当前为:

 cmd.CommandText = "SELECT id FROM TVShows WHERE id = @id";
cmd.Parameters.Add(new SQLiteParameter("@id", id));
conn.Open();

object result = ConvertFromDBVal<int>(cmd.ExecuteScalar());


private T ConvertFromDBVal<T>(object obj)
{
if (obj == null || obj == DBNull.Value)
{
return default(T); // returns the default value for the type
}
else
{
return (T)obj;
}
}


但是,我收到错误:

System.InvalidCastException在此行:

return (T)obj;


如果我只是尝试将 cmd.ExecuteScalar())的结果存储为 int,则会遇到相同的错误。

我必须承认我不完全了解此功能,因此,如果有人也能对此有所了解,我将不胜感激!

最佳答案

根据注释,不能将long转换为int。通过长时间传递,您将不会有强制转换异常。

long result = ConvertFromDBVal<long>(cmd.ExecuteScalar());

关于c# - SQL查询的转换结果-System.InvalidCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198242/

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