Comment créer une connexion SQL avec le code c # derrière, accéder au serveur SQL puis redirect de manière conditionnelle?

Ceci est une question d’un débutant expérimenté!

Utilisation de ASP.NET 4 C # ET du serveur SQL,

J’ai une chaîne de connexion dans web.config à myDatabase nommée “myCS”. J’ai une firebase database nommée myDB. J’ai une table nommée myTable avec une clé primaire nommée myPK

Quelles sont les lignes de code NÉCESSAIRES derrière (code minimal) pour créer une connexion SQL, puis sélectionnez dans myTable où myPK == “simpleText”

il comprendra probablement:

sqlconnection conn = new sqlconnection(??? myCS) ssortingng SQLcommand = select * from myDB.myTable where myPK==myTestSsortingng; sqlCommand command = new SqlCommand(SQL,conn); conn.Open(); booleanFlag = ???? conn.Close(); conn.Dispose(); 

puis

 If ( theAnswer != NULL ) // or (if flag) { Response.Redirect("Page1.aspx"); } else { Response.Redirect("Page2.aspx"); } 

Voici un tutoriel simple et limité:

Tout d’abord, vous voulez avoir un cours pour faire le travail difficile pour vous, puis vous l’utiliserez avec facilité.

Tout d’abord, vous devez créer la chaîne de connexion dans votre fichier web.config et le nommer. Ici, il s’appelle DatabaseConnectionSsortingng , mais vous pouvez le nommer myCS comme requirejs dans la question.

Maintenant, dans App_Code, créez un nouveau fichier de classe et nommez-le SqlComm (il s’agit d’un nom d’exemple) comme SqlComm :

 using System; using System.Data; using System.Data.SqlClient; using System.Web; public class SqlComm { // this is a shortcut for your connection ssortingng static ssortingng DatabaseConnectionSsortingng = System.Configuration.ConfigurationManager.ConnectionSsortingngs["dbConStr"].ConnectionSsortingng; // this is for just executing sql command with no value to return public static void SqlExecute(ssortingng sql) { using (SqlConnection conn = new SqlConnection(DatabaseConnectionSsortingng)) { SqlCommand cmd = new SqlCommand(sql, conn); cmd.Connection.Open(); cmd.ExecuteNonQuery(); } } // with this you will be able to return a value public static object SqlReturn(ssortingng sql) { using (SqlConnection conn = new SqlConnection(DatabaseConnectionSsortingng)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); object result = (object)cmd.ExecuteScalar(); return result; } } // with this you can resortingeve an entire table or part of it public static DataTable SqlDataTable(ssortingng sql) { using (SqlConnection conn = new SqlConnection(DatabaseConnectionSsortingng)) { SqlCommand cmd = new SqlCommand(sql, conn); cmd.Connection.Open(); DataTable TempTable = new DataTable(); TempTable.Load(cmd.ExecuteReader()); return TempTable; } } // sooner or later you will probably use stored procedures. // you can use this in order to execute a stored procedure with 1 parameter // it will work for returning a value or just executing with no returns public static object SqlStoredProcedure1Param(ssortingng StoredProcedure, ssortingng PrmName1, object Param1) { using (SqlConnection conn = new SqlConnection(DatabaseConnectionSsortingng)) { SqlCommand cmd = new SqlCommand(StoredProcedure, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter(PrmName1, Param1.ToSsortingng())); cmd.Connection.Open(); object obj = new object(); obj = cmd.ExecuteScalar(); return obj; } } } 

Bon, ceci n’est qu’une classe, et maintenant vous devriez savoir comment l’utiliser:

Si vous souhaitez exécuter une commande telle que delete, insert, update, etc., utilisez ceci:

 SqlComm.SqlExecute("TRUNCATE TABLE Table1"); 

mais si vous avez besoin de récupérer une valeur spécifique de la firebase database, utilisez ceci:

 int myRequiredScalar = 0; object obj = new object(); obj = SqlComm.SqlReturn("SELECT TOP 1 Col1 FROM Table1"); if (obj != null) myRequiredScalar = (int)obj; 

Vous pouvez récupérer un tas de lignes de la firebase database de cette manière (d’autres comme d’autres méthodes). Ceci est pertinent pour votre question spécifique

 int Col1Value = 0; DataTable dt = new DataTable(); dt = SqlComm.SqlDataTable("SELECT * FROM myTable WHERE myPK='simpleText'"); if (dt.Rows.Count == 0) { // do something if the query return no rows // you may insert the relevant redirection you asked for } else { // Get the value of Col1 in the 3rd row (0 is the first row) Col1Value = (int)dt.Rows[2]["Col1"]; // or just make the other redirection from your question } 

Si vous devez exécuter une procédure stockée avec ou sans retour de valeur, vous pouvez le faire (dans cet exemple, il n’y a pas de valeur de retour)

 SqlComm.SqlStoredProcedure1Param("TheStoredProcedureName", "TheParameterName", TheParameterValue); 

Encore une fois, pour votre question spécifique, renvoyez la table en utilisant SqlDataTable et redirigez-la si dt.Rows.Count >0

S’amuser.

Il existe de nombreuses manières: LINQ , SqlDataReader , SQLDataAdapter , selon ce que vous voulez lire (valeur unique, datatable …), voici donc un exemple:

 using (SqlConnection con = new SqlConnection("SomeConnectionSsortingng")) { var cmd = new SqlCommand("select from myTable where myPK==N'"+ simpleText+ "'",con); cmd.Connection.Open(); var sqlReader = cmd.ExecuteReader(); while(sqlReader.Read()) { //Fill some data like : ssortingng result = sqlReader("SomeFieldName"); } sqlReader.Close(); cmd.Connection.Close(); cmd.Dispose(); }