加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DataSet不支持c#中的System.Nullable <>异常

发布时间:2020-12-16 00:09:17 所属栏目:百科 来源:网络整理
导读:public partial class Form2 : Form{ public Form2() { InitializeComponent(); } private void Form2_Load(object sender,EventArgs e) { RST_DBDataContext db = new RST_DBDataContext(); var d = (from s in db.TblSpareParts select new { s.SPartName,
public partial class Form2 : Form
{
        public Form2()
        {
            InitializeComponent();
        }
        private void Form2_Load(object sender,EventArgs e)
        {
            RST_DBDataContext db = new RST_DBDataContext();
            var d = (from s in db.TblSpareParts
                                        select new {  s.SPartName,s.SPartCode,s.ModelID,s.SPartLocation,s.SPartActive,s.SPartSalePrice }).ToArray();
            CrystalReport1 c = new CrystalReport1();
            c.SetDataSource(d);
            crystalReportViewer1.ReportSource = c;

        } 
}

我正在尝试生成水晶报告
在sql表中,由于在c.SetDataSource(d),SPartSalePrice可以为空;异常来请解决

解决方法

在匿名投影中使用 null coalescing或 conditional运算符来映射null:

聚结:

var d = (from s in db.TblSpareParts
  select new 
  { 
    s.SPartName,...,SPartSalePrice = s.SPartSalePrice ?? 0.0,...
  }).ToArray();

条件(对于空值不是很有用,但对于投影其他值很有用)

SPartSalePrice = s.SPartSalePrice == null ? 0.0 : s.SPartSalePrice,

该字段需要被赋予一个名称(我保留了原始名称,SPartSalePrice),并且替换类型(0.0)应该与字段的类型匹配.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读