SQL是万能的,Linq虽然方便快捷,但不是万能的,在有的时候,还是需要借助SQL解决问题,在某些方面,例如动态字段的使用上,用sql往往得心应手,虽然linqtodataset也是不错的解决方案。

下面遇到的一些问题,应该如此解决:

 if(this.FpSpread1.ActiveSheetView.Cells[j, 4].Text.Trim() == string.Empty) //用三元表达式出错

                        {

                            yw = null;

                        }

                        else

                        {

                            yw = double.Parse(this.FpSpread1.ActiveSheetView.Cells[j, 4].Text.Trim());

                        }

2.

  cx_qrzb = (from aa in sjklj.xgk_xscj

                               where aa.nd == DateTime.Now.Year && aa.zz.HasValue && aa.zz > 0 && (aa.zz <= Y2 && aa.zz >= Y1) && !aa.zzff.HasValue

 

                               select aa.zz);

这里zzff是可空double类型,如果用数据表中的字符类型字段处理,都不容易解决。

 

自编SQL函数解决linq不易解决的问题,特别是多个循环语句下的数据保存问题。

string gx_zzff = "update xgk_xscj set zzff=@zzff,dj=@dj where zz=@fs and nd=@nd";

                                SqlParameter sqlcs1 = new SqlParameter("@zzff", T);

                                SqlParameter sqlcs2 = new SqlParameter("@fs", fs);

                                SqlParameter sqlcs3 = new SqlParameter("@nd", DateTime.Now.Year);

                                SqlParameter sqlcs4 = new SqlParameter("@dj", "D");

                                SqlParameter[] sqlcsch = new SqlParameter[] { sqlcs1, sqlcs2, sqlcs3, sqlcs4 };

                                gj.sqltjscgx(conn, gx_zzff, sqlcsch);

posted on 2020-03-24 20:50  wslk  阅读(195)  评论(0编辑  收藏  举报