Chargement des données de SQL Server dans DataGridView mais Toute aide, s'il vous plaît ... p> Private Function GetList() As DataTable
Dim dtApplicantLists As DataTable
Dim connString As String = ConfigurationManager.ConnectionStrings("dbx").ConnectionString
Using conn As New SqlConnection(connString)
Using cmmd As New SqlCommand("SELECT FirstName, LastName, Gender, ChosenProg, Aggregate FROM dbo.Applicants", conn)
conn.Open()
Dim reader As SqlDataReader = cmmd.ExecuteReader()
dtApplicantLists.Load(reader)
End Using
End Using
Return dtApplicantLists
End Function
3 Réponses :
Vous devez appeler dtaplicantlists = nouveau DataTable - Actuellement, c'est NULL (ou rien dans VB). P>
en utilisant la méthode code> garantira que vous n'aurez pas besoin de vous inquiéter des avertissements comme celui-ci que vous avez obtenu, comme étant évidemment démontré dans votre code.
Private Function GetList() As DataTable
Dim SqlStr As String =
("SELECT FirstName, LastName, Gender, ChosenProg, Aggregate FROM dbo.Applicants")
Using dtApplicantLists As DataTable = New DataTable
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("dbx").ConnectionString),
Cmd As New SqlCommand(SqlStr, conn)
conn.Open()
Using Reader As SqlDataReader = Cmd.ExecuteReader
dtApplicantLists.Load(Reader)
End Using
End Using
Return dtApplicantLists
End Using
End Function
Vous pouvez le faire de cette façon. Voir le lien ci-dessous pour d'autres options similaires, mais légèrement différentes. p> http://vb.net-informations.com/dataadapter/dataAdapter-DataGridView-sqlserver.htm a > p> p>
Où dans ce code crée-tu un objet code> dataTable code>? Vous ne le faites pas, d'où la question. Vous savez évidemment comment créer des objets car vous le faites pour la connexion et la commande. Vous devez faire la même chose pour la table.
Vous devez appeler
SET DTAPPlicantsList = Nouveau DataTable CODE> - Actuellement, c'est NULL (ou
rien code> dans VB). Disclaimer: Je n'utilise pas VB pour que ma syntaxe puisse être un peu éteinte.
@CHARLLEH, le mot clé code> code> n'est pas requis et, si je ne me trompe pas, pas même pris en charge dans VB.NET. En outre, vous n'utiliserez généralement pas ce formulaire à long terme. Changer
Date DtaplicantListes comme DataTable CODE> TO
DM DTAPPLICTLISTLISTLISTLISSONS NEW DATABLE code> est l'option évidente.
OT, vous n'avez pas besoin de nier
en utilisant des blocs code> à moins que vous n'ayez besoin d'interlacer le code entre eux .. Vous pouvez initialiser plusieurs variables avec un seul
à l'aide de la déclaration code>. Il suffit de les séparer avec des virgules.
DAY DTAPPLICANTLISTLISTLISTLISTLISTÉS NOUVEAU DATABLE code> .. et.
Disposez () CODE> Le lecteur après chargement de la table ou utilisez un
à l'aide de code> pour le créer .
@jmcilhinney Ouais - ça fait un moment, je ne peux pas regarder VB sans grimace, ce n'est pas une langue terrese, c'est sûr!
@JQsoft, tandis que c'est la meilleure pratique, la fermeture de la connexion fermera implicitement le lecteur.
@Charleh ça a fonctionné à 100% merci soooooo beaucoup
@jmcilhinney faisons le patron de la meilleure pratique.
@jmcilhinney a du sens que la fermeture de la connexion fermera le lecteur, mais qu'en est-il de Reader.Dispose? Est-ce que ça va aussi .Disposez-vous au lecteur? J'ai essayé de vérifier la source de référence mais cela était rapidement sur ma tête. Testé avec nothing mais il ne retourna pas vrai.
@Mary, j'appellerais
Fermer code> sur
Dispose code> mais, comme @jqsoft suggéré, je crée toujours le lecteur avec un
à l'aide de code> implicitement disposé. Vous devriez toujours toujours créer un objet jetable avec un
à l'aide de la relève code> si vous finissez à l'aide de cet objet dans la même méthode.