Remplir datatable dans une classe, de retour de la table à utiliser dans une autre classe
Ok le Titre est peut-être pas clair, donc laissez-moi vous expliquer.
J'ai 2 classes, "Form1" et "webinfo".
dans "webinfo" j'exécute le code suivant:
class WebInfo
{
string myConnVRM = "Data Source = datascource;" +
"Initial Catalog = catalog;" +
"Persist Security Info=True;" +
"User ID=ID;" +
"Password=PASS;" +
"providerName=System.Data.SqlClient;";
public WebInfo()
{
}
public void GetVRMs(string vRMs, string start, string end, string acc)
{
DataTable vrmTable = new DataTable();
SqlConnection connVRM = new SqlConnection(myConnVRM);
connVRM.Open();
SqlCommand cmdVRM = new SqlCommand("SELECT Ac, Vrm, Make, Model, MamengineSize, date FROM ReturnValue WHERE convert(varchar,[Date],101) between @StartDate and @EndDate and [AC]=@Acct", connVRM);
cmdVRM.Parameters.AddWithValue("@acct", acc);
cmdVRM.Parameters.AddWithValue("@from", start);
cmdVRM.Parameters.AddWithValue("@too", end);
SqlDataAdapter vrmAdapter = new SqlDataAdapter(cmdVRM);
vrmAdapter.Fill(vrmTable);
//bind to data grid and display??
}
}
comme vous pouvez le voir je me connecte à un serveur, l'exécution d'une requête et enfin remplir mon tableau avec les résultats.
ma classe de formulaire, puis appelle GetVRms méthode, passe à la corporation de l'info.
Mais ce que j'ai à faire est de lier cette table à la grille de données sur mon formulaire afin que je puisse afficher. Le seul problème est de savoir comment dois-je utiliser le tableau à partir de cette classe?
Suis-je totalement à penser cela? est-ce aussi simple que de webinfo.vrmtable?
Merci Beaucoup À L'Avance
- btw, vous allez saigner des connexions de le faire - vous devriez avoir
using
consolidés pourconnVRM
etcmdVRM
, pour s'assurer qu'ils sont éliminés correctement
Vous devez vous connecter pour publier un commentaire.
Changement
à
puis mettre
à la fin de la méthode.
Alors se lier à la table dans votre INTERFACE utilisateur comme ceci:
Ça dépend vraiment de l'intention. Si c'est une méthode utilitaire, puis le faire retour les données, c'est à dire
et accès
var data = obj.GetVRMs(...)
.Si la table doit être conservé, puis le stocker dans un endroit
et accès:
notes:
GetVRMs
est peut-être abrégéDataTable
œuvres, mais beaucoup de gens suggère un type de modèle est une meilleure métaphoreusing
déclarations etc pour éviter les problèmes (qui est le plus évident: de saturer la connexion de la piscine)Votre SQL semble mal ici aussi.
OU
Maintenant, vous pouvez l'utiliser comme vous le souhaitez.
OU
Définir une propriété publique vrmtable et y accéder à partir de n'importe où à l'aide de l'objet de la WebInfo classe.
Pourquoi ne pas vous suffit de nous renvoyer le DataTable ?
vous pouvez utiliser le type de retour que
DataTable
au lieu devoid
pourGetVRMs
méthode pour retourner un tableau c'est à direvrmTable
et à l'attribuer à la source de données de la grille de données