C#接続してMySQLデータベースを使用する詳細なチュートリアル

MySQLに接続するC#は、MySQLに接続するための参照を追加する必要があります

本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程

C#はMySQLのステップを引用しています:

最初の方法:

  1. mysql.data.dllをダウンロードします
  2. ファイルをプロジェクトディレクトリに配置します
  3. VS2019プロジェクトでは、mysql.data.dllファイルを参照し、
    DLLの公式Webサイトにアクセスしてmysql.data.dllファイルをダウンロードし可自选版本下载)、
    ここに画像の説明を挿入します
    [ダウンロード]をクリックしてダウンロードを
    ここに画像の説明を挿入します
    完了し、mysql.data.dllファイル解凍して、
    ここに画像の説明を挿入します
    参照するプロジェクトを右クリックします->追加参照->参照->MySql.Data.dllファイルを選択-> OK。操作は次のとおりです。

参照を選択

ここに画像の説明を挿入します

右クリックして[参照の追加]をクリックします

ここに画像の説明を挿入します

クリックして閲覧

ここに画像の説明を挿入します

mysql.data.dllストレージパスを選択します

ここに画像の説明を挿入します

参照を追加したら、[OK]をクリックします

记住勾选dll文件
ここに画像の説明を挿入します
参照をクリックすると、参照が追加されていることがわかりますmysql.data引用属性里可以看到引用详细信息
ここに画像の説明を挿入します
2番目の方法

  1. ダイナミックリンクライブラリファイルを追加します。公式ウェブサイトでconnector / netをダウンロードします。
  2. ファイルをプロジェクトディレクトリに配置します
  3. VS2019プロジェクトで、mysql.data.dllファイルを参照します

MySQL公式Webサイトにアクセスして、ダイナミックリンクライブラリファイルをダウンロードします

[Download
ここに画像の説明を挿入します
クリック]をクリックしてNo thanks, just start my download.ダウンロード開始します
ここに画像の説明を挿入します
プログラムをダブルクリックします
ここに画像の説明を挿入します
[次へ]をクリックします
ここに画像の説明を挿入します

インストールタイプを選択してください

以下は、3つのインストールタイプの説明です。
Typical>標準:通常、最も一般的なプログラム機能をインストールします。ほとんどのユーザーにお勧めします。
Custom>カスタマイズ:ユーザーがインストールするプログラム機能とインストール先を選択できるようにします。上級ユーザーに推奨されます。
Complete>完了:すべてのプログラム機能がインストールされます。最も多くのディスク容量が必要です。

一般选择第一个Typical即可。

ここに画像の説明を挿入します
[インストール]をクリックしてインストールし
ここに画像の説明を挿入します
、進行状況バーを表示して、インストールを待ちます。
ここに画像の説明を挿入します
インストールが完了しました
ここに画像の説明を挿入します

参照を選択

ここに画像の説明を挿入します

右クリックして[参照の追加]をクリックします

ここに画像の説明を挿入します

mysql.data.dllデフォルトのストレージパス

我々は、ダイナミックリンクライブラリファイルをインストールしているため、Cドライブに直接アクセスし、ダイナミックリンクライブラリファイルの選択
パスをC:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.23\Assemblies\v4.5.2
あなたは、ダイナミックリンクライブラリファイルの多くを見ることができます。
ここに画像の説明を挿入します
もちろん、あなたも使用することができmysql.data.dll、ファイルのパスすべてがすぐに見つけていることを
ここに画像の説明を挿入します
入力mysql.data.dllはすぐに見つけることができます
ここに画像の説明を挿入します

参照を追加した手順に進みます。

クリックして閲覧

ここに画像の説明を挿入します

mysql.data.dllストレージパスを選択します

dllファイルのパスを見つけるC:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.23\Assemblies\v4.5.2
[追加]をクリックして
ここに画像の説明を挿入します
確認し、[OK]をクリックし
ここに画像の説明を挿入します
て参照表示します
ここに画像の説明を挿入します
。3番目の方法:
直接在visual studio内添加mysql方案包
メニューバーで選択し、[ Enter 工具
ここに画像の説明を挿入します
]をNuGet包管理器(N)
ここに画像の説明を挿入します
クリックして、公式()を選択し、項目を確認して、[インストール]をクリックし[OK]()をクリックします[同意します]をクリックしますインストールが成功しました管理解决方案的NuGet程序包(N).ここに画像の説明を挿入します
mysql
ここに画像の説明を挿入します
作者Oracle
ここに画像の説明を挿入します

ここに画像の説明を挿入します
添加成功后会弹窗提示
ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

上記の操作を完了すると、コードを介してデータベースに接続できます。

C#はMySQLを使用します

を使用usingしてmysql接続を呼び出す
と、データベースへの接続使用した接続自動的に閉じることができ、データベースを閉じるためのメソッドを手動で作成する必要がありません。

名前空間をインポートするusing MySql.Data.MySqlClient;
ここに画像の説明を挿入します

  • data source=サーバーのIPアドレス;
  • database=データベース名;
  • user id=データベースユーザー名;
  • password=データベースパスワード;
  • pooling=接続プールに入れるかどうか。
  • charset=エンコード方法;

データベース接続するためのパラメーター
string connectstring= "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;";
:データベースに接続する方法:
MySqlConnection msc = new MySqlConnection(connectstring);

//导入命名空间
using MySql.Data.MySqlClient;

static void Main(string[] args)
        {
    
    
            //定义mysql连接字符串
            string constring = "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;";
            //连接mysql
            MySqlConnection msc = new MySqlConnection(constring);
        }

MySQL接続文字列パラメータの詳細な分析

通常、データベース接続文字列は次のとおりです。

Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;

パラメータ 説明
サーバー、ホスト、データソース、データソース、アドレス、アドレス、ネットワークアドレス データベースの場所(上記のキーワードのいずれかを使用できます)
データベース、初期カタログ データストレージ名
ソケットポート、デフォルト 3306
ConnectionProtocol、protocol 接続プロトコル、デフォルトのソケット
PipeName、パイプ 接続パイプライン、デフォルトのMYSQL
UseCompression、compress 接続が圧縮されているかどうかに関係なく、デフォルトはfalseです
AllowBatch 複数のSQLステートメントを一度に実行できるようにするかどうか、デフォルトはtrueです
ロギング ログを有効にするかどうか、デフォルトはfalseです
SharedMemoryName メモリ共有の名前、デフォルトのMYSQL
UseOldSyntax、古い構文、oldsyntax 古いバージョンの構文と互換性がありますか?デフォルトはfalseです
ConnectionTimeout、接続タイムアウト 接続タイムアウト待機時間、デフォルトは15秒
DefaultCommandTimeout、コマンドタイムアウト MySqlCommandタイムアウト時間、デフォルトは30秒です
ユーザーID、uid、ユーザー名、ユーザー名、ユーザー データベースログインアカウント
パスワード、pwd ログインパスワード
PersistSecurityInfo 機密情報を保持するかどうか、デフォルトはfalseです
暗号化 暗号化
CertificateFile 証明書ファイル(.pfx)形式
CertificatePassword 証明書のパスワード
CertificateStoreLocation 証明書の保管場所
CertificateThumbprint 証明書の指紋
AllowZeroDateTime 日付と時刻をゼロにすることができるかどうか、デフォルトはfalseです
ConvertZeroDateTime ゼロの日付と時刻がDateTime.MinValueに変換されるかどうかに関係なく、デフォルトはfalseです。
UseUsageAdvisor、使用状況アドバイザー アシスタントを有効にするかどうかは、データベースのパフォーマンスに影響します。デフォルトはfalseです。
ProcedureCacheSize、プロシージャキャッシュ、プロシージャキャッシュ 複数のストアドプロシージャを同時にキャッシュできます。0は禁止されています。デフォルトは25です。
UsePerformanceMonitor、userperfmon、perfmon パフォーマンス監視を有効にするかどうか、デフォルトはfalseです
IgnorePrepare Prepare()呼び出しを無視するかどうか、デフォルトはtrueです
UseProcedureBodies、procedure body ストアドプロシージャの本体とパラメータの有効性を確認するかどうか、デフォルトはtrueです。
AutoEnlist アクティブな接続を自動的に使用するかどうか、デフォルトはtrueです
RespectBinaryFlags 列のメタデータのバイナリフラグに応答するかどうか、デフォルトはtrueです
TreatTinyAsBoolean TINYINT(1)列をブール値として扱うかどうか、デフォルトはtrueです。
AllowUserVariables ユーザー変数をSQLに表示できるようにするかどうか、デフォルトはfalseです
InteractiveSession、interactive セッションが対話を許可するかどうか、デフォルトはfalseです
FunctionsReturnString すべてのサーバー関数が戻り文字列に従って処理されるかどうか、デフォルトはfalseです
UseAffectedRows 見つかった行の数を影響を受ける行の数に置き換えてデータを返すかどうか、デフォルトはfalseです
OldGuids GUIDとしてbinary(16)列を使用するかどうか、デフォルトはfalseです
生き続ける TCP接続を維持する秒数。デフォルトは0で、維持しません。
ConnectionLifeTime 接続が破棄される前に接続プールにとどまる最小時間(秒単位)。デフォルト0
プーリング スレッドプールを使用するかどうか、デフォルトはtrue
最小プールサイズ、最小プールサイズ スレッドプールで許可されるスレッドの最小数。デフォルトは0です。
MaximumPoolSize、最大プールサイズ スレッドプールで許可されるスレッドの最大数。デフォルトは100です。
ConnectionReset 接続の有効期限が切れた後に自動的にリセットするかどうか、デフォルトはfalseです
CharacterSet、charset サーバーからの接続を要求するために使用される文字セット、デフォルト:なし
TreatBlobsAsUTF8 バイナリブロブがutf8として扱われるかどうかにかかわらず、デフォルトはfalseです。
BlobAsUTF8IncludePattern 列の一致モード。一致すると、utf8として処理されます。デフォルト:なし
SslMode SSL接続モードを有効にするかどうか、デフォルト:MySqlSslMode.None

SQLコマンドの実行方法:

ExcuteNonQuery执行增改删

  1. insert(増加する)
  2. updata(変化する)
  3. delete(削除)

ExcuteReader:複数行のクエリを
ExcuteScalar実行してDataReaderオブジェクトを返す:単一行のクエリを実行してクエリ結果の最初の行のデータを返すコマンドオブジェクトを
作成するMySQL単一行のオブジェクトデータをMySqlCommand cmd = new MySqlCommand(sql, msc);
読み取るDataReaderreader.Read()
単一行のフィールドデータを取得する:reader.GetInt32(0); reader.GetString(1);**

//导入命名空间
using MySql.Data.MySqlClient;

static void Main(string[] args)
        {
    
    
            //定义mysql连接字符串
            string constring = "data source=localhost;database=test1;user id=root;password=root;pooling=true;charset=utf8;";
            //连接mysql
            MySqlConnection msc = new MySqlConnection(constring);
             #region MySQL操作
        //写入sql语句
        string sql = "select * from user";
        //创建命令对象
        MySqlCommand cmd = new MySqlCommand(sql, msc);
        //打开数据库连接
        msc.Open();
        //执行命令,ExcuteReader返回的是DataReader对象
        MySqlDataReader reader = cmd.ExecuteReader();
        //循环单行读取数据,当读取为null时,就退出循环
        while (reader.Read())
        {
    
    
            //输出第一列字段值
            Console.Write(reader.GetInt32(0) + "\t");
            //Console.Write(reader.GetInt32("id") + "\t");

            //判断字段"username"是否为null,为null数据转换会失败
            if (!reader.IsDBNull(1))
            {
    
    
                //输出第二列字段值
                Console.Write(reader.GetString(1) + "\t");
                //Console.Write(reader.GetString("username") + "\t");
            }
            //判断字段"password"是否为null,为null数据转换会失败
            if (!reader.IsDBNull(2))
            {
    
    
                //输出第三列字段值
                Console.Write(reader.GetString(2) + "\n");
                //Console.Write(reader.GetString("password") + "\t");
            }
        }
    }
   
   			 Console.ReadKey();
        }

おすすめ

転載: blog.csdn.net/qq_31762741/article/details/115032697