私はC#を使い始めたばかりで、それについてあまり知りません。 Unityという3Dゲームエンジンを使用していて、実行しているMySQLデータベースにアクセスするためのc#スクリプトを作成しようとしています。 MySQLデータベースは別のコンピューター上にあります。私の質問は、C#を使用してMySQLデータベースにアクセスするにはどうすればよいですか。使用したいユーザー名、パスワード、データベースはわかっていますが、データベースへのアクセス方法がわかりません。
C#MySQLドライバーを入手する必要があります: http://dev.mysql.com/downloads/connector/net/
そして、それを設定して使用するために、MySQLのマニュアルに従う必要があります。これは標準のADO.NETドライバーであるため、追加のヘルプが必要な場合は、ほとんどすべてのC#SQLチュートリアルに従うことができます。
私は昨日同じ問題に直面し、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.");
}
}
Unity用のデータベース(SQLite)セットアップ新しいフォルダーを作成します
Assets Folder Rename itPluginsの下に新しいフォルダを作成します。
Sqlite3.defとsqlite3.dllをユニティプロジェクトのアセット/プラグインにコピーします。これらのファイルはここからダウンロードできます http://www.sqlite.org/download.html Windows用(Windows用のプリコンパイル済みバイナリ)
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;
}
これらは便利なリンクです:
その他のSQLiteヘルプ訪問: http://www.tutorialspoint.com/sqlite/
http://wiki.unity3d.com/index.php/Webservices_In_Unity 次に、このライブラリを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つのステップで構成されています
Unity3Dは、データベースを直接サポートしないストリップされたMono.netを使用します。独自のDLLをC#.NETで記述して、データアクセスを行うことができます。次に nity3Dプロジェクトに追加 。
独自のDLLを作成しているときに、そのDLLをプロジェクトに持ち込むときに、参照されているDLLも同じフォルダーにコピーするようにしてください。最善のアプローチはMono.NETを使用すること。