Asp.Net sélectionnez dans Sql
Cela va être très simple, je le sais. J'ai vu tellement de façons différentes de l'utilisation de sql dans asp.net sans véritable standard. Ce que je veux savoir, c'est comment à proprement sélectionnez à partir d'une base de données sql dans asp.net et de récupérer des enregistrements multiples. Par exemple: sélectionnez tous les identifiants.
String sql =
"SELECT [UserId] FROM [UserProfiles] WHERE NOT [UserId] = 'CurrentUserId'";
string strCon = System.Web
.Configuration
.WebConfigurationManager
.ConnectionStrings["SocialSiteConnectionString"]
.ConnectionString;
SqlConnection conn = new SqlConnection(strCon);
SqlCommand comm = new SqlCommand(sql, conn);
conn.Open();
/*
This is where I need to know how to retrieve the information from the
above command(comm). I am looking for something similiar to php's
mysql_result. I want to access the records kind of like an array or some
other form of retrieving all the data.
Also when the new SqlCommand is called...does that actual run the
SELECT STATEMENT or is there another step.
*/
conn.Close();
+1 pour le SqlCommand pour contrecarrer les injections.
OriginalL'auteur user84786 | 2009-03-31
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est ce que vous cherchez.
Je dois dire, cependant, que l'approche globale peut utiliser tout un tas de réglage. Tout d'abord, vous pourriez au moins commencer par la simplification de l'accès à votre propriété ConnectionString. Par exemple, vous pouvez ajouter les lignes suivantes à votre Global.asax.cs fichier:
Maintenant, tout au long de votre code, il suffit d'accéder à l'aide:
Mieux encore, de créer une classe dans laquelle la "plomberie" est caché. Pour exécuter la même requête dans mon code, je venais d'entrer:
C'est juste un exemple d'utilisation de mon DAL. Toutefois, notez qu'il n'existe pas de chaîne de connexion, pas de commande ou de la connexion d'objets créés ou gérés, juste un "BSDIQuery" (ce qui fait beaucoup de choses différentes en plus qu'illustré). Votre approche serait différente selon les tâches que vous effectuez le plus souvent.
Il est assez mauvais, mais en termes de fiabilité: les exceptions seront laissées en suspens quand il y a des exceptions, même si vous attrapez l'exception.
Joel - voir les code que j'ai entré. Je suis d'accord avec vous mais je voulais répondre à la "base" de la question avant de passer à la plus profonde des questions soulevées.
sweetcoder - thx - content que vous avez trouvé utile. Ummm...btw... vous voyez que la case à cocher en haut à gauche de ma réponse? Aller de l'avant et de le frapper!
OriginalL'auteur Mark Brittingham
La plupart du temps, j'utilise ceci (à noter que je suis aussi à l'aide d'un pool de connexion de l'approche):
J'aime .Remplir, parce qu'il se sent mieux pour moi. Et la raison pour laquelle je utiliser l'utilise comme je fais, c'est parce que je cours StyleCop sur tout. Et, je suis d'accord sur l'interface IEnumerable<KeyValuePair>.
OriginalL'auteur John Gietzen
Voici une adaptation de votre code existant:
OriginalL'auteur Joel Coehoorn
La création d'un
SqlCommand
ne pas l'exécuter du tout.La commande sera exécutée lorsque vous appelez
ExecuteReader
ou quelque chose de similaire.Si vous voulez quelque chose qui va télécharger tous les résultats en mémoire, vous devriez être à la recherche à
DataSet
/DataTable
. Il y a un tutoriel pour eux ici - ou il y a beaucoup d'autres sur le net, et tout décent ADO.NET livre couvrira aussi.Si vous ne pas souhaitez récupérer tous en mémoire à la fois, puis
ExecuteReader
il la méthode pour vous. Qui sera de retour uneSqlDataReader
qui est comme une base de données de curseur, il lit une ligne à la fois, et vous demander de l'individu de colonnes que vous le souhaitez, en les appelantLire
pour se rendre à la ligne suivante à chaque fois.OriginalL'auteur Jon Skeet
Alors qu'en PHP, vous feriez quelque chose comme,
.NET, vous faire quelque chose de différent. Croyez-moi, originaires de PHP en arrière-plan, la transition à partir de PHP .NET n'est pas facile. Il y a beaucoup de choses qui va vous sembler bizarre. Après un certain temps cependant, il est logique! Il suffit de coller. Personnellement, je l'aime mieux.
Ok.. en supposant que vous avez un ensemble de données comme vous le dites, vous pouvez faire quelque chose comme cela,
Qui fait la même chose que le bout de code PHP.
Bonne prise. Il était évident pour moi que j'ai été taper 😉 Oui, j'ai été en supposant que vous feriez quelque chose avec ces variables dans la boucle.
OriginalL'auteur Anjisan