ホームページ バックエンド開発 C#.Net チュートリアル executenonqueryの使い方を詳しく解説

executenonqueryの使い方を詳しく解説

Feb 26, 2020 am 10:13 AM

executenonqueryの使い方を詳しく解説

#executenonquery の使用法の詳細な説明

#C でデータベース テクノロジを操作するための ExecuteNonQuery の使用法

#最近、基本的な知識をキャッチアップする必要があり、C# でのデータベース操作テクニックをいくつか習得しました。今日は ExecuteNonQuery について学びました。自分のプロジェクト メンテナンス プロジェクトのコードとオンライン データ クエリを調べました。 ExecuteNonQuery の使い方は大体理解できたので、今後の参考のために簡単にまとめておきます。

ExecuteNonQuery メソッドは主にデータの更新に使用されますが、もちろん、ターゲット操作 (データベースの構造のクエリやテーブルなどのデータベース オブジェクトの作成など) の実行にも使用できます。通常、Dataset を使用せずに挿入、更新、および削除ステートメントを実行してデータベース内のデータを変更するために使用されます。 select ステートメントは ExecuteNonQuery() メソッドには適していません。

おすすめ「

C ビデオ チュートリアル

1. まず、ExecuteNonQuery の戻り値を見てみましょう:

1. Update の場合、挿入または削除ステートメントが正常に実行された場合、戻り値はコマンドによって影響を受けた行数です。影響を受けた行数が 0 の場合、戻り値は 0 になります。

2. すべての場合他のタイプのステートメントの場合、戻り値は -1;

3. ロールバックが発生した場合、戻り値も -1;

4. 一般に、戻り値が大きいかどうかを判断します。更新操作の場合は 0 よりも大きくても問題ありません。ただし、他の操作 [データ構造に対する操作 (テーブルの作成など)] の場合、操作が成功すると戻り値は -1 になりますが、注意してください。たとえば、データベースに新しいテーブルを追加する場合、作成が成功すると、-1 が返されます。失敗すると、例外が発生します。このような操作を実行する場合は、Try ステートメントと Catch ステートメントを使用して例外をキャッチすることをお勧めします。

2. コマンド オブジェクトが ExecuteNonQuery メソッドを通じてデータベースを更新するプロセスは非常に簡単で、手順は次のとおりです:

1. データベース接続を作成します;

2. Command オブジェクトを作成し、SQL Inser、Update、Delete クエリまたはストアド プロシージャを指定します。

3. Command オブジェクトをデータベース接続に接続します。

4. ExecuteNonQuery() を呼び出します。メソッド;

5. 接続を閉じます。

3. コード例の使用方法:

1. 1 つ目は非常に単純なクラスで、コマンド オブジェクトを使用して ExecuteNonQuery メソッドを通じて新しいデータベースと通信する方法を提供します。

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. main 関数を呼び出します:

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();
        }
ログイン後にコピー

上記は、ExecuteNonQuery メソッドの最も簡単な導入と使用例です。

以上がexecutenonqueryの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語のnullの代替案は何ですか C言語のnullの代替案は何ですか Mar 03, 2025 pm 05:37 PM

この記事では、CのNull Poernter recerferenceの課題を調査します。問題は、問題はnullではなく、その誤用であると主張しています。 記事では、参照前のチェック、ポインターInitialiなど、非参照を防止するためのベストプラクティスの詳細

次のレベルのCコンパイラを追加する方法 次のレベルのCコンパイラを追加する方法 Mar 03, 2025 pm 05:44 PM

この記事では、printf内の\ nエスケープシーケンスを使用してcで新しいライン文字を作成し、関数を置く方法について説明します。 機能を詳しく説明し、出力のラインブレークに使用することを示すコード例を提供します。

どの言語コンパイラが優れていますか? どの言語コンパイラが優れていますか? Mar 03, 2025 pm 05:39 PM

この記事は、Cコンパイラの選択に関する初心者を案内しています。 GCCは、使いやすさ、幅広い可用性、広範なリソースが初心者に最適であるため、最適であると主張しています。 ただし、GCC、Clang、MSVC、およびTCCも比較して、その違いを強調しています

nullは、C言語での最新のプログラミングではまだ重要ですか? nullは、C言語での最新のプログラミングではまだ重要ですか? Mar 03, 2025 pm 05:35 PM

この記事では、現代のCプログラミングにおけるNullの継続的な重要性を強調しています。 進歩にもかかわらず、Nullは明示的なポインター管理にとって重要なままであり、有効なメモリアドレスがないことをマークすることにより、セグメンテーションの障害を防ぎます。 最高のPRAC

C言語コンパイラのWebバージョンは何ですか? C言語コンパイラのWebバージョンは何ですか? Mar 03, 2025 pm 05:42 PM

この記事では、初心者向けのオンラインCコンパイラをレビューし、使いやすさとデバッグ機能に焦点を当てています。 OnlineGDBとRepl.itは、ユーザーフレンドリーなインターフェイスと役立つデバッグツールのために強調表示されます。 プログラムやコンパイルなどのその他のオプション

C言語コンパイラによるコードをコピーする方法 C言語コンパイラによるコードをコピーする方法 Mar 03, 2025 pm 05:43 PM

この記事では、C IDEでの効率的なコードコピーについて説明します。 コピーはコンパイラ機能ではなくIDE機能であり、IDE選択ツールの使用、コード折りたたみ、検索/交換、テンプラなど、効率を向上させるための詳細戦略であることを強調しています。

c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約 c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約 Mar 03, 2025 pm 05:41 PM

この記事では、オンラインCプログラミングプラットフォームを比較し、デバッグツール、IDE機能、標準コンプライアンス、メモリ/実行の制限などの機能の違いを強調しています。 「最良の」プラットフォームはユーザーのニーズに依存していると主張しています。

C言語コンパイラによって出力ウィンドウをポップアップしないという問題を解決する方法 C言語コンパイラによって出力ウィンドウをポップアップしないという問題を解決する方法 Mar 03, 2025 pm 05:40 PM

この記事では、Cプログラムのコンパイルでの出力Windowsの欠落をトラブルシューティングします。 実行可能ファイルの実行に失敗し、プログラムエラー、誤ったコンパイラ設定、バックグラウンドプロセス、迅速なプログラム終了などの原因を調べます。ソリューションにはchが含まれます

See all articles