我有这个 SQL Server (Express) 表:
...具有 TinyInt 的 GenreId(最多只有几十个不同的流派)。
此 C# 代码失败,显示“指定的强制转换无效”。
int genreId = 0;
. . .
genreId = GetGenreIdForGenre(_genre);
失败时“_genre”的值是“Adventure”。对 GetGenreIdForGenre() 的调用应返回“1”:
这是 GetGenreIdForGenre() 中失败的行:
return (int)command.ExecuteScalar();
在上下文中,GetGenreIdForGenre() 方法是:
private int GetGenreIdForGenre(string genre)
{
try
{
string qry = "SELECT GenreId FROM dbo.GENRES WHERE Genre = @genre";
using (SqlConnection connection = new SqlConnection(_connectionString))
{
using (SqlCommand command = new SqlCommand(qry, connection))
{
command.Parameters.AddWithValue("@genre", genre);
connection.Open();
return (int)command.ExecuteScalar();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return 0;
}
}
没有可用的 (TinyInt) 转换。Int32 也失败了。我需要做什么来检索 TinyInt 值?