2013-06-10 2 views
10

Я только что начал использовать C# и не знаю много об этом. Я использую 3D-движок под названием Unity и пытаюсь написать скрипт C# для доступа к базе данных MySQL, которую я запускаю. База данных MySQL находится на другом компьютере. Мой вопрос в том, как я могу получить доступ к базе данных MySQL с помощью C#. Я знаю имя пользователя, пароль и базу данных, которые я хочу использовать, но я не могу понять, как получить доступ к базе данных.Доступ к базе данных sql с использованием C# по единству?

+1

Единство игровой движок, не 3d моделирование программа –

ответ

1

Вам нужно будет получить C# MySQL драйвер: http://dev.mysql.com/downloads/connector/net/

И тогда вам нужно будет следовать за руководством MySQL для установки его и использовать его. Это стандартный драйвер ADO.NET, поэтому вы можете следить за большинством учебных пособий на C# SQL, чтобы получить дополнительную помощь.

0

Unity3D использует Stripped Mono.net, который не поддерживает базу данных напрямую. Вы можете написать свою собственную DLL в C# .NET, которая делает доступ к данным для вас. Затем add it in your Unity3D project.

Пока вы пишете свою собственную DLL, убедитесь, что когда вы приносите эту DLL в свой проект, вы также скопируете ссылку на DLL в той же папке. Лучший подход - использовать Mono.NET.

+0

Я незнаком с Mono.Net, что вы говорите. – Cody

+0

Попробуйте googling. Когда вы работаете над инфраструктурой Unity3D, вам нужно знать о платформах .NET и о том, как их использовать. – Yogee

+1

Это правда, что Unity использует «Mono-lite», но есть [способы] (http://forum.unity3d.com/threads/9391-MS-SQL-connection) [с помощью моно-сборок] (http: // forum .unity3d.com/threads/11466-Чтение базы данных и/или таблиц) для подключения к базе данных SQL. – Jerdak

0

Поздний ответ, но, возможно, это поможет другим.

Я могу получить доступ к базе данных SQL-сервера на моем не-игровом Unity-приложении. В моем случае мое приложение контролирует, является ли серийный номер пользователя истинным или нет. После того, как пользователи ввели свой серийный ключ, мое приложение начинает сравнивать серийные номера в базе данных sql. Вы можете использовать этот Server Side Highscores Tutorial для своей начальной точки. Я сделал то же самое. Выполните следующие действия, после чего вы сможете получить доступ к своей базе данных sql в Unity.

+0

Это граничит с ответом «только для ссылок» - всегда рекомендуется публиковать наиболее подходящий фрагмент/фрагмент текста из связанного ресурса, даже если это необходимо для предотвращения гниения ссылки. Возможно редактирование? :) – bardzusny

1

базы данных (SQLite) Установка для Unity Создать новую папку

  1. Создать новую папку Assets Переименование папки его плагинов.

  2. Копировать sqlite3.def и sqlite3.dll в Assets/Plugins в проекте единства .Вы можете скачать эти файлы здесь http://www.sqlite.org/download.html для окон (скомпилированных двоичных файлов для Windows)

  3. Скачать SQLite Браузер http://sourceforge.net/projects/sqlitebrowser/ или http://sqliteadmin.orbmu2k.de/ загрузки SQLite Администратор tool
  4. Создайте базу данных в папке «Активы» в своем проекте единства с помощью SQLite Browser.
  5. Copy System.Data.dll и Mono.Data.Sqlite.dll из ** C: \ Program Files (x86) \ Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0 * и вставлять их в свои объекты/Плагины * в вашем проекте единства.
  6. Добавьте эти пространства имен, используя Mono.Data.Sqlite; используя System.Data; использование системы;
  7. string conn = "URI = file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db";

Заменить PickAndPlaceDatabase.s3db с именем базы данных

под активами папки Переименуйте Плагин.

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 here enter image description here

это полезно ссылка:

Далее SQLite Помощь Визит: http://www.tutorialspoint.com/sqlite/

http://wiki.unity3d.com/index.php/Webservices_In_Unity enter 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(); 
    } 
} 
+0

Пользователь специально сказал, что они хотели бы использовать MySQL и не хотели использовать другую RDMS. Я бы предложил для будущих сообщений проверять, что пользователь действительно хочет сделать, вместо того, чтобы предположить, что вы знаете, что лучше для них. – Trey50Daniel

Смежные вопросы