我正在開發一個應用程序,我需要根據員工的進出條目生成報告。 我沒有使用動態查詢的數據庫相關應用程序的經驗。 在這個特定的應用程序中,我需要通過動態sql查詢。在visual studio中使用動態sql在c#代碼
在這我需要根據用戶選擇選擇列名稱,然後將它們傳遞給另一個SQL查詢作爲參數。 這裏查詢...
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(date +'_'+Logname)
from
(
select doordate,
convert(char(10),doordate, 101) date,
LogName
from DoorLog
cross apply
(
select 'In' LogName
union all
select 'Out'
) l
) s
group by convert(char(10), doordate, 112), date, Logname
order by convert(char(10), doordate, 112)
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query
= 'select employeeid, name, '[email protected]+'
from
(
select employeeid, name,
convert(char(8), doortime, 108) DoorTime,
date + ''_''+ col col_names
from
(
select p.employeeid,
p.name,
convert(char(10),d.doordate, 101) date,
min(d.doordate) [In],
max(d.doordate) [Out]
from person p
left join doorlog d
on p.employeeid = d.employeeid
group by p.employeeid, p.name,
convert(char(10),d.doordate, 101)
)src
unpivot
(
doortime
for col in ([In], [Out])
) unpiv
) p
pivot
(
max(doortime)
for col_names in('[email protected]+')
) piv'
execute(@query)
我一直沒能推算的方式,如何使用C#代碼的代碼。
請幫忙。
在此先感謝...
我的確在這裏建議一個存儲過程 – 2013-03-21 07:52:56
@PraveenNambiar先生,如何在C#代碼中使用存儲過程? – humorousdragon 2013-03-21 08:01:17