0
誰かがこのコードを手伝ってくれますか?VB .net filter datagridview datasourceがストアドプロシージャdsqlピボット
DECLARE @cols AS NVARCHAR(MAX)
DECLARE @cale AS NVARCHAR(MAX)
DECLARE @ini AS DATETIME
DECLARE @fin AS DATETIME
SET @ini = (SELECT MIN(VerAvv) FROM CalendariVer)
SET @fin = (SELECT MAX(VerSca) FROM CalendariVer)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME(CONVERT(NVARCHAR(10), Data, 103))
FROM Calendario WHERE Data BETWEEN CAST(@ini AS DATE)
AND CAST(@fin AS DATE)
GROUP BY Data
ORDER BY Data
FOR XML PATH(''),TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'')
SET @cale = 'SELECT CalId, PiaId, PiaAcr, VerId, VerCod, Ver, Avvio, Chiusura, '[email protected]+'
FROM (SELECT dbo.CalendariVer.CalId, dbo.CalendariVer.PiaId, dbo.CalendariVer.PiaAcr, dbo.CalendariVer.VerId, dbo.CalendariVer.VerCod, dbo.CalendariVer.Ver, CONVERT(nvarchar(10), dbo.CalendariVer.VerAvv, 103) AS Avvio,
CONVERT(nvarchar(10), dbo.CalendariVer.VerSca, 103) AS Chiusura, CONVERT(NVARCHAR(5), dbo.CalendariVer.LezDal, 108) + '' - '' + CONVERT(NVARCHAR(5), dbo.CalendariVer.LezAl, 108) AS Orario,
CONVERT(nvarchar(10), dbo.Calendario.Data, 103) AS Data
FROM dbo.CalendariVer RIGHT OUTER JOIN
dbo.Calendario ON CAST(dbo.CalendariVer.Lez AS date) = dbo.Calendario.Data
WHERE CalID IS NOT NULL
GROUP BY dbo.CalendariVer.CalId, dbo.CalendariVer.PiaId, dbo.CalendariVer.PiaAcr, dbo.CalendariVer.VerId, dbo.CalendariVer.VerCod, dbo.CalendariVer.Ver, CONVERT(nvarchar(10), dbo.CalendariVer.VerAvv, 103),
CONVERT(nvarchar(10), dbo.CalendariVer.VerSca, 103), CONVERT(NVARCHAR(5), dbo.CalendariVer.LezDal, 108) + '' - '' + CONVERT(NVARCHAR(5), dbo.CalendariVer.LezAl, 108), CONVERT(nvarchar(10),
dbo.Calendario.Data, 103)) AS c
PIVOT (MAX(Orario) FOR Data IN ('[email protected]+')) AS p'
EXEC (@cale)
すべての作業: 私は、オブジェクトのリストを返すストアドプロシージャは、カレンダーに参加しました。
Public Function Calendario_Ver() As DataTable
Dim cale As New DataTable()
Try
Acon()
Dim cal As New SqlCommand("CalendarioVer", con)
cal.CommandType = CommandType.StoredProcedure
Dim trova As New SqlDataAdapter(cal)
trova.Fill(cale)
Ccon()
Catch ex As Exception
Interaction.MsgBox(ex.ToString, MsgBoxStyle.Critical)
End Try
Return cale
End Function
をこのコードでのDataGridViewを埋める:私は思い出すVBで機能しましあまりに
Private Sub CaricaCalendario()
Try
With CalVerDataGridView
.Refresh()
.DataSource = Calendario_Ver()
.Columns(0).Visible = False
.Columns(1).Visible = False
.Columns(3).Visible = False
.Columns(2).HeaderText = "Piano"
.Columns(4).HeaderText = "Progetto"
.Columns(5).HeaderText = "Versione"
End With
Catch ex As Exception
Interaction.MsgBox(ex.ToString, MsgBoxStyle.Critical)
End Try
End Sub
すべての作業を、私は列piano
、versione
とのことで、データソースまたはDataGridViewのをフィルタリングする方法ver
?
は私がDataGridView' 'に' BindingSource'、何も変更を試してみました。 – GCA
それからあなたは間違っていました。あなたがしたことを私たちに示さなければ、何が間違っているか教えてもらえません。 – jmcilhinney
私はサブでこのコードを入力: 'ます。Public Sub SelezionePiani()新しいのBindingSourceとして 薄暗いPIA pia.DataSource = Calendario_Ver() をCalVerDataGridView .Refresh(で) .DataSource = PIA .Filter( "PiaId = '"&CalVerPiaComboBox.SelectedValue& "'") 最後に End Sub' – GCA