web-dev-qa-db-ja.com

UnityでC#を使用してMySQLデータベースにアクセスしますか?

私はC#を使い始めたばかりで、それについてあまり知りません。 Unityという3Dゲームエンジンを使用していて、実行しているMySQLデータベースにアクセスするためのc#スクリプトを作成しようとしています。 MySQLデータベースは別のコンピューター上にあります。私の質問は、C#を使用してMySQLデータベースにアクセスするにはどうすればよいですか。使用したいユーザー名、パスワード、データベースはわかっていますが、データベースへのアクセス方法がわかりません。

12
Cody

C#MySQLドライバーを入手する必要があります: http://dev.mysql.com/downloads/connector/net/

そして、それを設定して使用するために、MySQLのマニュアルに従う必要があります。これは標準のADO.NETドライバーであるため、追加のヘルプが必要な場合は、ほとんどすべてのC#SQLチュートリアルに従うことができます。

3
Adrian

私は昨日同じ問題に直面し、PCとAndroidの両方で機能する満足のいく解決策を見つけました。

1:Visual Studioプロジェクトのターゲット.NETバージョンに一致する.DLLファイルをここからダウンロードします(私にとって3.5、バージョン6.9.8.0は問題なく機能しました)。間違ったバージョンをダウンロードすると、Unityエディターでエラーが発生します。ファイルをダウンロードするためのリンク: https://www.dllme.com/dll/files/mysql_data_dll.html またはこれ: https://downloads.mysql.com/archives/ c-net /

2:.DLLファイルを解凍し、プロジェクトに含めます(Assetsフォルダー内の任意の場所に配置します)。

3:データベースへの接続をプログラムします;)ここに短い例があります:

 using System;
 using System.Data;

 using MySql.Data;
 using MySql.Data.MySqlClient;

 public class Tutorial4
 {
     public static void Main()
     {
         string connStr = "server=localhost;user=root;database=world;port=3306;password=******";
         MySqlConnection conn = new MySqlConnection(connStr);
         try
         {
             Console.WriteLine("Connecting to MySQL...");
             conn.Open();

             string sql = "SELECT COUNT(*) FROM Country";
             MySqlCommand cmd = new MySqlCommand(sql, conn);
             object result = cmd.ExecuteScalar();
             if (result != null)
             {
                 int r = Convert.ToInt32(result);
                 Console.WriteLine("Number of countries in the world database is: " + r);
             }

         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }

         conn.Close();
         Console.WriteLine("Done.");
     }
 }
1
RemiGc

Unity用のデータベース(SQLite)セットアップ新しいフォルダーを作成します

  1. Assets Folder Rename itPluginsの下に新しいフォルダを作成します。

  2. Sqlite3.defとsqlite3.dllをユニティプロジェクトのアセット/プラグインにコピーします。これらのファイルはここからダウンロードできます http://www.sqlite.org/download.html Windows用(Windows用のプリコンパイル済みバイナリ)

  3. SQLiteブラウザをダウンロード http://sourceforge.net/projects/sqlitebrowser/ または http://sqliteadmin.orbmu2k.de/ SQLite管理者ツールをダウンロード
  4. SQLite Browserを使用して、UnityプロジェクトのAssetsフォルダーにデータベースを作成します。
  5. System.Data.dllとMono.Data.Sqlite.dllを** C:\ Program Files(x86)\ Unity\Editor\Data\Mono\lib\mono\2.0 *からコピーし、Assets/Plugins *フォルダーに貼り付けますあなたの団結プロジェクトで。
  6. Mono.Data.Sqliteを使用してこれらの名前空間を追加します。 System.Dataを使用する;システムを使用する;
  7. string conn = "URI = file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db";

PickAndPlaceDatabase.s3dbをデータベース名に置き換えます

assetsFolderの下でその名前をPluginsに変更します。

void Start () {

             string conn = "URI=file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db"; //Path to database.
             IDbConnection dbconn;
             dbconn = (IDbConnection) new SqliteConnection(conn);
             dbconn.Open(); //Open connection to the database.
             IDbCommand dbcmd = dbconn.CreateCommand();
             string sqlQuery = "SELECT value,name, randomSequence " + "FROM PlaceSequence";
             dbcmd.CommandText = sqlQuery;
             IDataReader reader = dbcmd.ExecuteReader();
             while (reader.Read())
             {
                 int value = reader.GetInt32(0);
                 string name = reader.GetString(1);
                 int Rand = reader.GetInt32(2);

                 Debug.Log( "value= "+value+"  name ="+name+"  random ="+  Rand);
             }
             reader.Close();
             reader = null;
             dbcmd.Dispose();
             dbcmd = null;
             dbconn.Close();
             dbconn = null;
         }

enter image description hereenter image description here

これらは便利なリンクです:

その他のSQLiteヘルプ訪問: http://www.tutorialspoint.com/sqlite/

http://wiki.unity3d.com/index.php/Webservices_In_Unityenter image description here 次に、このライブラリをC#コードに追加する必要があります:

using AssemblyCSharp.portal.wwwww.com;

今、あなたはそれを使うことができます:

using UnityEngine;
using System.Collections;
using AssemblyCSharp.portal.wwwww.com;

public class Game5_Player : MonoBehaviour
{
    public string Logo;
    void Start ()
    {
        crm1 s = new crm1();
        Logo= s.getCompanyLogo ();
    }
}

プロシージャは、PHP、MySQL、およびC#/ JavaScriptを使用した nity Wiki にあります。

それは3つのステップで構成されています

  1. 空のMySQLデータベースとテーブルを作成します。
  2. PHPサーバーサイドスクリプトを作成します(これにより、MySQLテーブルに接続し、Unityスクリプトからデータを受信し(ステップ3)、データベースにクエリを実行します(例はデータの挿入または選択です) )
  3. Unityコントローラースクリプトを作成します(これにより、手順2で作成したPHPスクリプトに接続されます)

Unity3Dは、データベースを直接サポートしないストリップされたMono.netを使用します。独自のDLLをC#.NETで記述して、データアクセスを行うことができます。次に nity3Dプロジェクトに追加

独自のDLLを作成しているときに、そのDLLをプロジェクトに持ち込むときに、参照されているDLLも同じフォルダーにコピーするようにしてください。最善のアプローチはMono.NETを使用すること。

0
Yogee