2013-06-10 21 views
10

Ho appena iniziato ad usare C# e non ne so molto. Sto usando il motore di gioco 3D chiamato Unity e sto provando a scrivere uno script C# per accedere al database MySQL che sto utilizzando. Il database MySQL si trova su un altro computer. La mia domanda è come posso accedere al database MySQL usando C#. Conosco il nome utente, la password e il database che voglio usare, ma non riesco a capire come accedere al database.Accesso al database sql usando C# sull'unità?

+1

L'unità è un motore di gioco, non un programma di modellazione 3d –

risposta

1

Sarà necessario ottenere il C# MySQL conducente: http://dev.mysql.com/downloads/connector/net/

E allora si avrà bisogno di seguire il manuale di MySQL per la sua creazione e l'utilizzo di esso. È un driver ADO.NET standard, quindi dovresti essere in grado di seguire la maggior parte delle esercitazioni C# SQL disponibili per ulteriore assistenza.

0

Unity3D utilizza Mono.net spogliato che non supporta direttamente il database. Puoi scrivere la tua DLL in C# .NET che ti consente l'accesso ai dati. Quindi add it in your Unity3D project.

Mentre si scrive la propria DLL, assicurarsi che quando si porta quella DLL al progetto, si copi anche la DLL di riferimento nella stessa cartella. Il miglior approccio sarebbe usare Mono.NET.

+0

Io sono familiarità con la Mono.Net di cui parli. – Cody

+0

Prova a cercare su Google. Poiché stai lavorando su Unity3D framework, devi essere a conoscenza dei framework .NET e di come usarlo. – Yogee

+1

È vero che Unity usa "Mono-lite" ma ci sono [modi] (http://forum.unity3d.com/threads/9391-MS-SQL-connection) di [usando Mono assembly] (http: // forum .unity3d.com/threads/11466-Reading-database-and-or-spreadsheets) per connettersi a un database SQL. – Jerdak

0

Una risposta tardiva, ma forse questo aiuterà gli altri.

Posso effettivamente accedere al mio database sql lato server sulla mia app Unity non di gioco. Nel mio caso, la mia app controlla se il numero di serie dell'utente è vero o meno. Dopo che gli utenti hanno inserito il loro codice seriale, la mia app inizia a confrontare i numeri seriali sul database sql. È possibile utilizzare questo Server Side Highscores Tutorial per il punto di partenza. Ho fatto lo stesso. Segui questi passaggi quindi dovresti essere in grado di accedere al tuo database sql su Unity.

+0

Confinante con la "risposta di solo collegamento", è sempre consigliabile pubblicare lo snippet/pezzo di testo più appropriato dalla risorsa collegata, anche se solo per impedire il collegamento. Forse una modifica? :) – bardzusny

1

Database (SQLite) Setup per l'unità dei Creare nuova cartella

  1. Crea nuova cartella le Attività Folder Rinomina esso Plugin.

  2. Copia sqlite3.def e sqlite3.dll in attività/Plugins nel progetto dell'unità .È possibile scaricare questi file qui http://www.sqlite.org/download.html per le finestre (binari precompilati per Windows)

  3. Scarica SQLite Browser http://sourceforge.net/projects/sqlitebrowser/ o http://sqliteadmin.orbmu2k.de/ scaricare SQLite Administrator tool
  4. Crea database in cartella Risorse nel progetto di unità utilizzando SQLite Browser.
  5. Copia System.Data.dll e Mono.Data.Sqlite.dll da ** C: \ Programmi (x86) \ Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0 * e incollali nelle risorse/Cartella plug-in * nel tuo progetto di unità.
  6. Aggiungere questi spazi dei nomi utilizzando Mono.Data.Sqlite; usando System.Data; usando il sistema;
  7. string conn = "URI = file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db";

Sostituire PickAndPlaceDatabase.s3db con il nome del database

le Attività Folder Rinominarlo Plugin.

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

queste è link utile:

Ulteriori SQLite visita di aiuto: http://www.tutorialspoint.com/sqlite/

http://wiki.unity3d.com/index.php/Webservices_In_Unity enter image description here allora si dovrebbe aggiungere questa libreria nel vostro codice C#:

using AssemblyCSharp.portal.wwwww.com; 

Ora è possibile utilizzare esso:

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

L'utente ha espressamente dichiarato che desidera utilizzare MySQL e non desidera utilizzare un RDMS diverso. Suggerirei per i post successivi di controllare per vedere cosa l'utente vuole effettivamente fare invece di assumere che tu sappia cosa è meglio per loro. – Trey50Daniel

Problemi correlati