Requête SQL de la Base de données et de Stocker le résultat dans une Variable VB.Net
Je suis en train de requête SQL DB à l'aide d'un champ de zone de texte et récupérer une colonne à partir de la DB et de la stocker dans une variable afin que je puisse l'utiliser dans d'autres endroits à l'intérieur de mon site. Mon formulaire web de demande à l'utilisateur de saisir quelques éléments tels que le nom et le code postal.
Ma base de données a 3 colonnes, adresse électronique, code postal, et id. J'ai besoin du formulaire de saisie de requête de la base de données et le retour de la "adresse email", qui correspond à l'utilisateur saisie "code postal"
Je comprends l'instruction SQL SELECT et la chaîne de connexion est correcte. Mes questions sont à travailler, je n'arrive pas à trouver comment obtenir le retour de l' "adresse de courriel" pour stocker dans une variable. Toute aide serait appréciée.
Dim strconnection As String, strSQL As String, strZipCheck As String
Dim objconnection As OleDbConnection = Nothing
Dim objcmd As OleDbCommand = Nothing
Dim RREmail As String = Nothing
Dim zipQuery As String = zipCodeBox.Text
'connection string
strconnection = "provider=SQLOLEDB;Data Source=XXX.XXX.XXX.XXX;Initial Catalog=XXXXXXX;User ID=XXXX;Password=XXXXXXXX;"
objconnection = New OleDbConnection(strconnection)
objconnection.ConnectionString = strconnection
'opens connection to database
objconnection.Open()
strSQL = "SELECT [EMAIL ADDRESS] FROM ZIPCODEDATA WHERE [ZIP CODE] = @ZIP CODE "
objcmd = New OleDbCommand(strSQL, objconnection)
RREmail = CType(objcmd.ExecuteScalar(), String)
lblRREmail.Text = RREmail
objconnection.Close()
- où en êtes-vous en précisant le code postal de paramètre?
- Que l'Oie a implicites, vous allez avoir à appeler
objcmd.Parameters.AddWithValue("@ZIP", zipQuery)
ou à définir votre code postal paramètre. Avec cela, il ressemble au votre, code déjà fait ce que vous voulez. Vous l'esprit que si l'utilisateur entre un code postal incorrect? Cette requête sera toujours récupérer la valeur NULL et que vous n'êtes pas permettant pour que. - Par ailleurs, votre nom de paramètre ne peut pas avoir un espace, si vous le souhaitez @zip_code à votre nom de paramètre.
Vous devez vous connecter pour publier un commentaire.
Tandis que les autres commentaires ne sont point en particulier des lacunes de votre syntaxe, je voudrais aborder la question de stocker une variable et de prendre un peu plus loin. En général, je n'utilisez pas paramétré les connexions, sauf que je suis l'appel de procédures stockées et de la nécessité d'un paramètre de sortie. Au lieu de cela, voici ce que je fais souvent pour créer une connexion de base de données et obtenir mes résultats.
J'ai d'abord créer une classe appelée dbConn alors je n'ai pas à écrire un million de fois.
Puis d'une autre classe (permet de supposer son form1) j'appelle cette fonction pour obtenir une datatable revint vers moi. Dans ce cas, je select TOP 1 pour enregistrer votre santé mentale dans le cas où par hasard il n'y a plus qu'une seule adresse email par code postal.
À partir de là, vous pouvez utiliser strEmailAddress au sein de la sous après c'est réglé, ou vous pouvez déplacer la chaîne de déclaration à l'extérieur de la sous comme une chaîne publique de la déclaration de l'utiliser ailleurs, ou vous pouvez créer d'autres classes comme un e-mail de classe avec une propriété publique pour strEmailAddress à passer, etc.
J'espère quelque chose, il vous aide à comprendre comment faire face à votre problème.
objConn.Close
) devrait aller dans unFinally
bloc. Si une exception est levée avant la ligne pour fermer la connexion SQL, il ne sera pas le fermer. Mettre dansFinally
va lui permettre d'exécuter la fermeture de la ligne, même si une exception est levée.