c# - C# - 'int' 和
问题描述
static public string CreatePlaylist(int userId, string playlistName, int playlistImgId)
{
DataTable playlistTable = Dal.CreatePlaylist(userId, playlistName, playlistImgId);
Playlist p = new Playlist((int)playlistTable.Rows[0]["UserID"]);
p.PlaylistName = playlistTable.Rows[0]["Playlist_Name"] == DBNull.Value ? null : (string)playlistTable.Rows[0]["Playlist_Name"];
p.PlaylistImg = playlistTable.Rows[0]["Playlist_Img_ID"] == DBNull.Value ? null : (int)playlistTable.Rows[0]["Playlist_img_ID"];
return new JavaScriptSerializer().Serialize(p);
}
我收到此错误:
无法确定条件表达式的类型,因为 'int' 和 <null> 之间没有隐式转换
我发现了类似的问题,但不明白他们的解决方案。
解决方案
您正在转换playlistTable.Rows[0]["Playlist_img_ID"]
为 int,但是您有一个三元运算 (?:),其中您将 null 作为另一个操作数。
int
并且null
对于三元运算不“兼容”。您应该使用可为空的int?
类型。
代替:
p.PlaylistImg = playlistTable.Rows[0]["Playlist_Img_ID"] == DBNull.Value ? null : (int)playlistTable.Rows[0]["Playlist_img_ID"];
做:
p.PlaylistImg = playlistTable.Rows[0]["Playlist_Img_ID"] == DBNull.Value ? null : (int?)playlistTable.Rows[0]["Playlist_img_ID"];
推荐阅读
- vue.js - 如何按特定目录导入css
- php - 如何注册默认登录用户?
- java - JpaRepository 在保存到数据库时跳过了一些行
- django - 如何优化对反向ForeignKey的访问?
- keycloak - 用户尝试使用现有电子邮件注册时出现 Keycloak 内部服务器错误
- mysql - 使用乐观锁定更新 Sequelize 中的模型
- javascript - 如何在reactjs中验证多表条目应用程序onsubmit
- symfony - 从单一存储库加载一个特定的作曲家包
- python - 如何克服无法加载 vtkClientServerPython?
- java - 如何将 LocalDate 转换为特定的日期时间格式