0
我已存儲Procerdure名Attendancesheet必須聲明標量變量@trainid
ALTER proc [dbo].[Attendancesheet] (@trainid nvarchar (max))
as
begin
declare @DyPQ as nvarchar (max)
declare @CN as nvarchar(max)
select @CN =ISNULL(@CN+',','')
+ QUOTENAME(lecturename)
FROM (SELECT DISTINCT lecturename FROM ATT where [email protected]) as Lectures
--Print @CN
SET @DyPQ= N'
select * from
(
select (select trinsname from trains where trinsid=e.trinsid) as [TrainerNmae],
lecturename,
att_status
from att e where ([email protected]))as p
pivot
(
max(Att_status) for lecturename in(' + @CN + '))as f'
execute (@DyPQ);
end
我想通過@trainid從vb.net 2010組合框的值參數 的vb.net代碼:
Dim connect As New Connection
connect.getconnection()
Dim cmd As New SqlCommand("AttendanceSheet", connect.conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "AttendanceSheet"
' ---------------------- define parameter to stored procedure
Dim trainid As SqlParameter = cmd.Parameters.Add("@trainid", SqlDbType.NVarChar)
trainid.Direction = ParameterDirection.Input
trainid.Value = Me.cbotrainings.SelectedValue.ToString
Dim dt As New DataTable
dt.Load(cmd.ExecuteReader())
connect.conn.Close()
Me.dg1.DataSource = dt
你有沒有嘗試過這種「暗淡trainid作爲的SqlParameter = cmd.Parameters.Add(「@ TR ainid「,SqlDbType.NVarChar)'參數名中沒有'@'? –