MySQLに接続するC#は、MySQLに接続するための参照を追加する必要があります
本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程
C#はMySQLのステップを引用しています:
最初の方法:
- mysql.data.dllをダウンロードします
- ファイルをプロジェクトディレクトリに配置します
- VS2019プロジェクトでは、mysql.data.dllファイルを参照し、
DLLの公式Webサイトにアクセスしてmysql.data.dll
ファイルをダウンロードし(可自选版本下载
)、
[ダウンロード]をクリックしてダウンロードを
完了し、mysql.data.dll
ファイルを解凍して、
参照するプロジェクトを右クリックします->追加参照->参照->MySql.Data.dll
ファイルを選択-> OK。操作は次のとおりです。
参照を選択
右クリックして[参照の追加]をクリックします
クリックして閲覧
mysql.data.dll
ストレージパスを選択します
参照を追加したら、[OK]をクリックします
记住勾选dll文件
参照をクリックすると、参照が追加されていることがわかりますmysql.data
(引用属性里可以看到引用详细信息
)
2番目の方法
- ダイナミックリンクライブラリファイルを追加します。公式ウェブサイトでconnector / netをダウンロードします。
- ファイルをプロジェクトディレクトリに配置します
- 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执行增改删
:
insert
(増加する)updata
(変化する)delete
(削除)
ExcuteReader
:複数行のクエリを
ExcuteScalar
実行してDataReaderオブジェクトを返す:単一行のクエリを実行してクエリ結果の最初の行のデータを返すコマンドオブジェクトを
作成するMySQL
:単一行のオブジェクトデータをMySqlCommand cmd = new MySqlCommand(sql, msc);
読み取るDataReader
:reader.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();
}