si vous avez trouvé une réponse , n'ésitez surtout pas à me l'envoyer svp à mon adresse email suivante :
death_soul@hotmail.fr
merci bien
note : comprenez que je cherche à afficher les résultats d'une recherche dans un controle Datagrid sans avoir( si c'est possible ) à utiliser le Dataset , mais le Datareader c'est bon !!
merci
Salut tout le monde!! voilà : Je suis entrain de développer une application client/serveur pour mon établissement et pendant mon travail j'ai rencontré pas mal de problèmes, parmi les quels le problème d'affichage des résultats d'une requêtte SQL dans un controle DataGrid..
Pour plus d'infos, il s'agit d'une application totalement montée qu'avec le mode connecté , donc j'utilise que le DataReader dans tous mes traitements et jusqu'à present tout fonctionne parfaitement
j'utilise Visual Studio 2003 avec SQLServer 2000 et j'espère trouver un moyen d'afficher mes résultats de recherche dans un Datagrid , c'est beaucoup plus éfficace qu'autres choses..et c'est joli en terme de graphique....
c bien d'utiliser DataReader, il permet un acceè rapide à la BD .. mais pour remplir un DataGrid je ne sais pas d'autres méthodes que d'utiliser un DataSet ou DataTable .. essai le code ci-dessous et à+
Imports System.Data.SqlClient
Dim conn As New SqlConnection("server=localhost; integrated security=true; initial catalog=NomBD;")
Dim da As SqlDataAdapter
Dim dt As New DataTable
conn.Open()
da = New SqlDataAdapter("select * from table1", conn)
dt.Clear()
da.Fill(dt)
' DataGrid1 : nom du DataGrid
DataGrid1.DataSource = dt
J'en ai un poil bavé aussi entre les objets, le générateur de requêtes qui me retournait une erreur concernant la requête de base avant d'adapter le code d'Abdel pour ma base Access. Pour cet exercice j'utilise la base exemple Northwind pour Access et je veux obtenir dans une seconde form (form2, la première servant d'interface principale) un Datagridview avec quatre colonnes, CompanyName (table Customers) ; OrderID ; OrderDate (table Orders) et ShipperName (table Shippers), dont les orders ont été passés en 2008 (01/01 à 31/12) et trié par nom de compagnie (CompanyName). La requête je l'ai eu sous cette forme par le biais du générateur de requête VB parce que le SQL "standard" marche plus ou moins bien.
Ca vaut ce que ça vaut, mais ça marche...
Ca donne :
A placer dans la partie Général - Déclaration de ta Classe
Imports
System.Data
Imports
System.Data.OleDb
Imports
System.Net
Puis :
Public
Class FrmPreviousYear
Inherits System.Windows.Forms.Form
#Region
"Declarations"
Dim MyConnection
As
New OleDb.OleDbConnection
Dim MyDataSet
As
New DataSet
Dim MyDataTable
As
New DataTable
Dim MyAdapter
As
New OleDb.OleDbDataAdapter
#End
Region
Private
Sub FrmPreviousYear_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
MyConnection.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Documents\Visual Studio 2008\Projects\NorthwindVB\NorthwindVB\bin\Northwind 2003 (updated).mdb"
MyAdapter =
New OleDbDataAdapter("SELECT Customers.CompanyName, Orders.OrderID, Orders.OrderDate, Shippers.CompanyName FROM ((Customers INNER JOIN Orders ON Customers.CustomerID Orders.CustomerID)INNER JOIN Shippers ON Orders.ShipVia Shippers.ShipperID)WHERE(Orders.OrderDate > #1/1/2008# And Orders.OrderDate < #12/31/2008#)ORDER BY Customers.CompanyName", MyConnection)MyDataSet =
New DataSet()
MyDataTable.Clear()
MyAdapter.Fill(MyDataTable)
DgPreviousYear.DataSource = MyDataTable