バックグラウンド。 DB選択
データベースサーバーを使用して、VBで記述されたプログラムと友達を作る必要がありました。 もちろん、多くの仲間のソフトウェア開発者が私のデータベースの選択に疑問を呈し(そして正しいでしょう)、MSSQLを最も単純で明白な選択と呼んでいます。 ただし、いくつかの事実を考慮する必要があります。
- メインプログラム(VB)に加えて、顧客はWebインターフェイス(php)を使用できるようにしたい
- MySQLは顧客のサーバーにインストールされます
MySQLへの接続のセットアップ
VBにはMySQLに接続するための標準メカニズムがないため、 ODBCではなくConnector / NETを使用することにしました。
まず、コネクタライブラリを接続する必要があります。
既定では、ソリューションエクスプローラーにマイプロジェクトアイテムがあります。 実際に、それを選択してから、参照に移動します。
このように見えるはずですが、それに応じてMySql.Dataはありません。 このライブラリは既に接続されています。
[ 追加 ]をクリックして 、[ブラウザ]タブを選択し、ライブラリを探します。 次のパスにあります:path_where_you_myst_mysql_connector / Assemblies / version .net / MySql.Data.dll
ライブラリをプロジェクトに追加した後、(ローカルでコピー)オプション(リストウィンドウが強調表示されたプロパティウィンドウ)を必ずtrueに変更してください。そうしないと、MySQL Connector / NETのないコンピューターでソフトウェアが起動したときに、dllエラーでアプリケーションがクラッシュします
このすべての後、プログラムの作成を安全に開始できます。
接続
最初に、Imports MySql.Data.MySqlClient行を使用してタイプをインポートします。 クラス/オブジェクトを作成する前に、定義領域に配置する必要があります。 これは、変数を定義するたびに型へのフルパスを記述する必要性から私たちを救うために必要です。
Imports MySql.Data.MySqlClient
接続を作成するには、タイプMySqlConnectionのオブジェクトを作成し、それをConnectionString(接続文字列-サーバーへの接続に必要なパラメーターを説明)に設定する必要があります。
'User id , . Dim conn As New MySqlConnection("Server=127.0.0.1;User id=test_user;password=test_pwd;database=test_db")
したがって、connを介して、プログラムは指定されたユーザー名とパスワードを使用して、localhost上の指定されたデータベースに接続します。
クエリ実行
クエリを実行するには、MySqlCommand型のオブジェクトを作成する必要もあります。
Dim cmd As New MySqlCommand
この状態のクエリテキストは、cmdオブジェクトのCommandTextプロパティを変更することで設定されます。
cmd.CommandText = " "
さらに、要求を満たすために使用する特定の接続を指定することを忘れないことが重要です。
cmd.Connection = conn
Connector / NETは、さまざまな機能を使用してさまざまなデータベースクエリを実行します。
そのため、たとえば、関係する行の総数のみを返すクエリを実行するには、ExecuteNonQuery関数が使用され、データ(行)を返す人にはリーダーオブジェクトが作成されます。
その結果、出力には、ロード時にデータベースへのクエリを実行するアプリケーションがあります。
Imports MySql.Data.MySqlClient Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim conn As New MySqlConnection("Server=127.0.0.1;User id=test_user;password=test_pwd;database=test_db") Dim cmd As New MySqlCommand Try conn.Open() cmd.Connection = conn ' insert, update ExecuteNonQuery, cmd.CommandText = "INSERT INTO `test_table` (`id`, `test_info`) VALUES (NULL, 'some text info for current id');" Try cmd.ExecuteNonQuery() Catch ex As Exception ' , - End Try ' ( select) reader. cmd.CommandText = "SELECT * FROM `test_table`" Dim reader As MySqlDataReader reader = cmd.ExecuteReader() While reader.Read() ' MsgBox(reader.GetValue(0)) End While Catch ex As Exception ' End Try End Sub End Class