小结
1 datatable.rows[i][j].tostring()的值为空时不能进行副值!
2 (1)当SQL语句很长在换行,加引号和加号的时候,在引号之前别忘记加空格,否则SQL语句的前后字段
会拼 接在一起,出错!
(2)在传参数的时候,可以按照字符串拼接的方法!在用subsonic 的时候,QueryCommand q1 = new
QueryCommand(sql, "Supplies"); q1.AddParameter("@biller", biller);直接写就可以了!不需要拼
接! 但是=后面可以,而在like‘%后面就不可以,必须进行拼接!!!
3 设置主键后,dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
用merge()方法合并两个表!dt3.Merge(dt2);
4 给表加行列:datatable.columns.add(); datatable.rows.add();
(1) Object[] udt_d = new object[11];
(2) datarows dr=new datatable.newrows();
5 在涉及多个表的合并的时候,开始的时候一定要注意列内容和名称的对应!在做多个类似的查询的时候
,第一个表的标准行一定要符合全部的要求,检察之后再复制,更改条件做其他表,切记不能全部做完
之后再回头更改!工作量会加大N倍!
6 SQL语句处理 (1)过年按月 进行年前 年后两个月的比较问题解决where datepart(month,StockInDate)=
(case when datepart(month,getdate())-1=0 then 12
else datepart(month,getdate())-1 end )and
datepart(year,StockInDate)=(case when datepart(month,getdate())=1 then datepart(year,getdate())-1
else datepart(year,getdate()) end) )
方法二where convert(nvarchar(7),StockInDate,120)=convert(nvarchar(7),dateadd(month,-1,getdate()),120)
(2)空值问题isnull(hh,0)
select j.ArticlesortName,isnull(f.presumquant,0) as presumquant from
(3) 除数为0问题
(mn.nowsumquant/mn.presumquant) as divsum1,case when mn.presumquant=0 then 0 else mn.nowsumquant/mn.presumquant end as divsum 把结果为0处理
(4)连接问题:左,右,全,内。