Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Verwendung vonexecutenonquery

Detaillierte Erläuterung der Verwendung vonexecutenonquery

藏色散人
藏色散人Original
2020-02-26 10:13:5610375Durchsuche

Detaillierte Erläuterung der Verwendung vonexecutenonquery

Detaillierte Erläuterung der Verwendung vonexecutenonquery

Verwendung von ExecuteNonQuery beim Betrieb der Datenbanktechnologie in C#

Vor kurzem habe ich mir nur einige Grundkenntnisse in C# angeeignet. Heute habe ich mir den Code meines eigenen Projektwartungsprojekts und die Online-Datenabfrage angesehen Ich habe die Verwendung von ExecuteNonQuery verstanden. Lassen Sie mich zum späteren Nachschlagen eine kurze Zusammenfassung erstellen.

Die ExecuteNonQuery-Methode wird hauptsächlich zum Aktualisieren von Daten verwendet, kann aber natürlich auch zum Ausführen von Zieloperationen (z. B. Abfragen der Struktur der Datenbank oder Erstellen von Datenbankobjekten wie Tabellen) verwendet werden. Es wird normalerweise verwendet, um Einfügungs-, Aktualisierungs- und Löschanweisungen auszuführen, um die Daten in der Datenbank zu ändern, ohne Dataset zu verwenden. Die select-Anweisung ist nicht für die ExecuteNonQuery()-Methode geeignet.

Empfehlen Sie „C++ Video Tutorial

1. Schauen wir uns zunächst den Rückgabewert von ExecuteNonQuery an:

1. Bei Update: Wenn INSERT- oder DELETE-Anweisungen erfolgreich ausgeführt werden, ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen. Wenn die Anzahl der betroffenen Zeilen 0 ist, ist der Rückgabewert 0; Bei anderen Arten von Anweisungen ist der Rückgabewert -1;

3. Wenn ein Rollback auftritt, ist der Rückgabewert ebenfalls -1; als 0 für Update-Vorgänge. Bei anderen Vorgängen [z. B. Vorgängen an Datenstrukturen (Erstellen von Tabellen usw.)] ist der Rückgabewert jedoch -1, aber achten Sie bitte darauf, dass beispielsweise eine neue Tabelle zur Datenbank hinzugefügt wird Wenn die Erstellung erfolgreich ist, wird -1 zurückgegeben. Wenn sie fehlschlägt, verwenden Sie am besten Try- und Catch-Anweisungen, um Ausnahmen abzufangen, wenn Sie solche Vorgänge ausführen.

2. Der Vorgang des Befehlsobjekts, die Datenbank über die ExecuteNonQuery-Methode zu aktualisieren, ist wie folgt:

1. Erstellen Sie eine Datenbankverbindung 2. Erstellen Sie ein Command-Objekt und geben Sie eine SQL-Inser-, Update-, Delete-Abfrage oder gespeicherte Prozedur an

3. Hängen Sie das Command-Objekt an die Datenbankverbindung an

4. Rufen Sie ExecuteNonQuery() auf; Methode;

5. Schließen Sie die Verbindung.

3. So verwenden Sie das Codebeispiel:

1. Die erste ist eine sehr einfache Klasse, die bereitstellt, wie das Befehlsobjekt für die Kommunikation mit der neuen Datenbank über die ExecuteNonQuery-Methode verwendet wird.

public class ExecuteNonQueryClas
    {
        private static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

        //as this method provided static method, set the constructor to priviate to prevent create instance with 'new ExecuteNonQuery()'
        private ExecuteNonQueryClas()
        {

        }

        public static int ExecuteNonQuery(string commandText)
        {
            return ExecuteNonQuery(commandText, (SqlParameter[])null);
        }

        public static int ExecuteNonQuery(string commandText,SqlParameter[] commandParams)
        {
            //if connectionString is null, then throw exception
            if(connectionString == null || connectionString.Length == 0)
                throw new ArgumentNullException("connectionString");
            
            using(SqlConnection conn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(commandText,conn);
                if (conn.State != ConnectionState.Open)
                    conn.Open();

                //check if the commandParams is not null, then attach params to command
                if(commandParams !=null)
                  AttachParameters(cmd,commandParams);

                int recordsAffected = cmd.ExecuteNonQuery();

                return recordsAffected;
            }

        }

        private static void AttachParameters(SqlCommand cmd,SqlParameter[] commandParams)
        {
            if (cmd == null) throw new ArgumentException("command");
            if (commandParams != null)
            {
                foreach (SqlParameter p in commandParams)
                {
                    if (p != null)
                    {
                        //// Check for derived output value with no value assigned
                        if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null))
                        {
                            p.Value = DBNull.Value;
                        }
                        cmd.Parameters.Add(p);
                    }
                }
            }
        }
    }

2. Rufen Sie die Hauptfunktion auf:

static void Main(string[] args)
        {
            string userName = Console.ReadLine();
            string loginId = "user";
            string sqlString = "update Users set UserName = @name where LoginID= @loginID";
            SqlParameter[] parms ={
                                      new SqlParameter("@name",userName),
                                      new SqlParameter("@loginID",loginId)
                                       
                                  };

            int rlt = ExecuteNonQueryClas.ExecuteNonQuery(sqlString,parms);

            Console.WriteLine(rlt);
            Console.Read();
        }

Okay, das Obige ist die einfachste Einführung und das einfachste Beispiel für die Verwendung der ExecuteNonQuery-Methode.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung vonexecutenonquery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn