一、C#組合查詢的便捷方法。
object objImportDateFrom = DBNull.Value;
if (importDateFrom != "")
{
objImportDateFrom = importDateFrom;
}
new SqlParameter("@ProductSaleTimeFrom",ObjproductSaleTimeFrom),
new SqlParameter("@ProductSaleTimeTo",productSaleTimeTo),
...................................
//sql預存程序
CREATE PROCEDURE [dbo].[UP_ProductFocus_SalesStatistics]
@Code nvarchar(10)='',
@ProductCreateTimeFrom DATETIME=null,--匯入系統時間
@ProductCreateTimeTo DateTime=null
as
begin
AND (@SearchCodeList='' OR cn.Code IN (Select * From dbo.fun_split(@SearchCodeList,',')))
AND (@ProductCreateTimeFrom is null OR cn.CreateTime between @ProductCreateTimeFrom and @ProductCreateTimeTo)
end
(2)、時間範圍的處理方法,這樣可以防止不同電腦上的時間設定格式的不同。
productSaleTimeFrom = this.dtpStartSellDateFrom.Value.Date.ToString("yyyy-MM-dd") + " 0:00:00";//2012-09-14 0:00:00
productSaleTimeTo = this.dtpStartSellDateTo.Value.Date.AddDays(1).AddMilliseconds(-100).ToString("yyyy-MM-dd") + " 23:59:59";//2012-09-14 23:59:59
(3)、sql中的事務寫法
1、方法一
begin tran(開啟事務)
begin try
//語句塊
//……….
//……….
//……….
commit tran(提交事務)
--return 1
end try
begin catch
rollback tran(復原事務)
--return 0
end catch
2、寫法二
begin transaction
declare @error int
set @error = 0
insert into borrows(rid,bid,borrowdate) values
(5,10,2008-6-11)
set @error = @error + @@error
update books set bstate=1
where bid=10
set @error = @error + @@error
if @error <> 0
rollback transaction
else
commit transaction
來源文件 <http://blog.sina.com.cn/s/blog_75a83e8b0100u7nx.html>
CREATE PROCEDURE UP_EbestPostOrderHeader_UpdateExportConfim
@EbestPostOrderHeaderId INT,
@User NVARCHAR(50)
AS
BEGIN
Begin try
Begin Tran
UPDATE dbo.EbestPostOrderHeader SET IsExport = 1, ExportDate = GETDATE(), LastUpdTime= GETDATE(),LastUpdUser = @User
WHERE EbestPostOrderHeaderId = @EbestPostOrderHeaderId
UPDATE dbo.PromotionOrderHeader SET IsExport = 1, ExportTime = GETDATE(), LastUpdTime= GETDATE(),LastUpdUser = @User
WHERE EbestPostOrderHeaderId = @EbestPostOrderHeaderId
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
END