rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011
-
5 mai 2011 à 13:42
rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011
-
6 mai 2011 à 18:11
salut a tout le monde
en faite je voudrai savoir comment on affiche le résultat d'une procédure stockée en vb. net. je passe les paramètres et après quand je clique sur le bouton je voudrai avoir le résultat de la procédure stockée qui est sous forme de table
merci d'avance
Bonjour, il faut que tu affecte ta procedure stockée à une sqlCommand (en supposant que tu utilise SQL Server), ensuite tu affecte à un SqlDataReader le resultat de ta sqlCommant (SqlDataReader = sqlCommand.executeReader)...
rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011 5 mai 2011 à 14:44
voici le code que j'ai déjà prduit jopop.
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
Dim con As String = ConfigurationManager.ConnectionStrings("GeststockConnectionString").ConnectionString
Dim cntest As New SqlConnection(con)
Dim cmd As New SqlCommand("geststock", cntest)
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "quantite"
Dim nomc As New SqlParameter()
nomc.ParameterName = "@nom_ctr"
nomc.SqlDbType = SqlDbType.VarChar
nomc.Size = 30
nomc.Direction = ParameterDirection.Input
nomc.Value = n_centre.SelectedValue
cmd.Parameters.Add(nomc)
Dim ty As New SqlParameter()
ty.ParameterName = "@type"
ty.SqlDbType = SqlDbType.VarChar
ty.Size = 20
ty.Direction = ParameterDirection.Input
ty.Value = codes.text
cmd.Parameters.Add(ty)
Dim cod As New SqlParameter()
cod.ParameterName = "@cod_habit"
cod.SqlDbType = SqlDbType.Char
cod.Direction = ParameterDirection.Input
cod.Value = habit.SelectedValue
cmd.Parameters.Add(cod)
'afficher la resultat dans une DataGridView a l'aide de DataSet et DataAdapter
Dim ad As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
ad.Fill(ds, "proc")
stock.DataSource = ds.Tables("Results")
message.Text = "opération effectuée avec succés!!!"
Catch ex As Exception
message.Text = ex.Message
End Try
End Sub
alexandrevandenberghe je vais essayer ta méthode pour voir
D'apres ton code, je dirai qu'il est ok, sauf que ton dataset "ds" doit contenir une table "Results" et que ta procédure stockée "genere" une table qui a le même nom que le nom de la table dans le dataset...
vu que tu utilise un dataset, tu n'as pas besoin d'un datareader...
Vous n’avez pas trouvé la réponse que vous recherchez ?
rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011 5 mai 2011 à 15:01
d'accord mais je ne sais mm pas le nom retourné par ma procédure stocké. car la procédure que j'ai écrite me donne seulement la quantité du stock pour tel ou tel article. et je n'ai pas donné de nom à la table. et donc si je ne sais pas le nom de la table générée par la procédure stockée qu'est ce que je dois faire dans ce cas. ou comment faire pour le savoir
rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011 5 mai 2011 à 18:21
en faite voici le code de la procédure
create proc [dbo].[quantite](@nom_ctr varchar(30), @type varchar(20),@cod_habit char(3))
as
declare @ID_ctr int
declare @ID_habit int
set @ID_ctr =(select Id_ctr from CENTRE where nom_ctr=@nom_ctr)
set @ID_habit =(select ID_habit from HABITATION where cod_habit=@cod_habit and ID_ctr= @ID_ctr)
if @type=''
begin
select design_art, COUNT(*) as STOCK into RESULT from ARTICLE where ID_ctr= @ID_ctr
and ID_habit is null and traceart='A'
group by design_art
order by design_art
end
else
select design_art, COUNT(*) as QUANTITE into RESULT from ARTICLE
where ID_ctr=@ID_ctr
and ID_habit= @ID_habit
and traceart ='A'
group by design_art
order by design_art
alors??
if @type= ''
begin
select design_art, COUNT(*) as STOCK into RESULT S from ARTICLE where ID_ctr = @ID_ctr
and ID_habit is null and traceart= 'A'
group by design_art
order by design_art
end
else
select design_art, COUNT(*) as QUANTITE into RESULT S from ARTICLE
where ID_ctr =@ID_ctr
and ID_habit= @ID_habit
and traceart ='A'
group by design_art
order by design_art
rewstyle
Messages postés10Date d'inscriptionmercredi 27 avril 2011StatutMembreDernière intervention 6 mai 2011 6 mai 2011 à 18:11
Ben c'est pas grave j'ai finalement pu le faire. en faite c'était le if qui posait un peu de problème. car s'il saute par exemple la premiere condition il ne trouve nulle part la colonne stock qui renvoie donc une erreur. j'ai finalement séparé la procédure stockée en deux partie et maintenant ca marche tres bien. Sinon je voudrai savoir s'il est possible d'attaquer une base de donnée conçue sous SQL-SERVEUR avec ACCESS. c'est à dire faire des requete avec l'interface graphique d'ACCESS sur une base de donnée qui est sous SQL-SERVEUR?
Et merci beaucoup pour vos aides