x


connect to the sql database

I need to connect to the sql database in unity3d,but can not find the fully information. i hope the company can provide the package,so we can use it.thang you.

more ▼

asked Nov 23 '09 at 01:22 PM

yq li gravatar image

yq li
26 1 2 3

Which database specifically do you want to connect to? And: In what environment do you want to access the database? Unless you're in a "safe environment" (e.g. local network, authoritative server that sits next to the database etc.) you probably don't want a direct (Internet) network connection to a database server.

Nov 26 '09 at 09:04 PM jashan
(comments are locked)
10|3000 characters needed characters left

7 answers: sort newest

A really dedicated solution as local data storage for your games is Siaqodb see more info here:http://siaqodb.com/?p=482

  • easy to use, very simple API
  • works on all platforms: PC, Mac, iOS, Android
  • works for all Unity3D editions(not needed Pro edition)
  • no SQL knowledge needed
  • 100% managed code
  • small footprint

Just put a siaqodb.dll in your scripts folder and GO!, no extra configuration, no nightmares with unmanaged references

more ▼

answered Jul 19 '11 at 08:25 PM

cristoph1 gravatar image

cristoph1
4 1

(comments are locked)
10|3000 characters needed characters left
more ▼

answered Feb 10 '11 at 11:30 PM

Daniel 15 gravatar image

Daniel 15
31

(comments are locked)
10|3000 characters needed characters left

I have a problem width this code, I need your help, this read the data from SQL Server 2005 only the first time when I click the button but the next time I click Unity shows "SqlException: SQL Server does not exist or access denied" can some one help me please. import System;

import System.Data;

import System.Data.Sql;

import System.Data.SqlClient;

function Update () {}

function OnGUI() { GUI.Box (Rect (10,100,400,30), Msg1);

if (GUI.Button (new Rect (0,80,100,20), "Escribe algoSQL", "button")){Msg1 = "algoSQL";}

if (GUI.Button (new Rect (120,80,100,20), "BorrarSQL", "button")){Msg1 = "";}

//if (GUI.Button (new Rect (220,20,140,20), "Enviar a Browser", "button")){SendBrowser();}

if (GUI.Button (new Rect (250,80,100,20), "LeeDatosSQL", "button")){LeeDatos ();}

}

function LeeDatos ()

{ var dataSet : System.Data.DataSet = new System.Data.DataSet();

var ConStr : String = "Server=x.x.x.x; Uid=xxxxx; Pwd=xxxxxx; Database=dbname;";

var dbCon : System.Data.IDbConnection= new System.Data.SqlClient.SqlConnection(ConStr);

var query : String = "SELECT * FROM [Table_1] WHERE ([brand] ='xxx') ORDER BY [id_num]";

var dbCommand : IDbCommand = new System.Data.SqlClient.SqlCommand();

var dataAdapter : System.Data.IDbDataAdapter = new System.Data.SqlClient.SqlDataAdapter();

    dbCommand.CommandText = query;

    dbCommand.Connection = dbCon;

    dataAdapter.SelectCommand = dbCommand;

            dataAdapter.Fill(dataSet);

}

more ▼

answered Sep 27 '10 at 04:34 PM

FCC gravatar image

FCC
1

This is no answer. It should be removed. If your problem is unique, pose a Question on the site instead.

Feb 14 at 09:31 AM Sonaten
(comments are locked)
10|3000 characters needed characters left

Well, the question is still pretty unclear - but here's how to connect to an MS SQL Database:

In the editor and standalones, this approach should be working fine ... I'm not sure if it also works with Web players - but even if it should work, I'd definitely not recommend letting Web players connect to your database (unless you got everything in a local network). I also wouldn't let any clients connect directly to a database unless you have a secure environment.

You need System.Data.dll from the Unity.app folder (I think under Frameworks). Do not use System.Data.dll from any Mono installation (I had very ugly crashes with that, and it took me almost forever to find what the problem was because the crashes occured when closing my game server / closing Unity after I had started the game server inside Unity - so there was no hint that it was the database connection which was causing the crashes).

You need to make sure that the SQL Server listens to TCP connections (not a default setting).

I got this up and running easily with code from the Mono project (modified somewhat, but not toooo significantly):

using System.Data; 
using System.Data.Sql; 
using System.Data.SqlClient; 

... 

... and then, in some method: 

using (IDbConnection dbcon = new SqlConnection(connectionString)) { 
    using (IDbCommand dbcmd = dbcon.CreateCommand()) { 
        dbcmd.CommandType = CommandType.StoredProcedure; 
        dbcmd.CommandText = procedureName; 
        foreach (SqlParameter parameter in parameters) { 
            dbcmd.Parameters.Add(parameter); 
        } 
        dbcon.Open(); 
        result = dbcmd.ExecuteScalar(); 
        dbcon.Close(); 
    } 
}

procedureName also could be an SQL statement.

Ah, and I think you can't use the IP-address in the connection string (you need to use a name that can be resolved via DNS). The only parameters I could use in the connection string (I think that's a Mono limitation) are: Database, Server, uid and pwd.

Hope that helps ...

I had a similar posting about this in the forum in MS SQL connection?; other postings regarding this issue on the forums:

more ▼

answered Dec 08 '09 at 10:30 AM

jashan gravatar image

jashan
10.1k 25 40 116

(comments are locked)
10|3000 characters needed characters left

...and (2) since I am a new user and can only post 1 link at a time:

2) Use SQLLite directly, as described here:

http://forum.unity3d.com/viewtopic.php?t=30249&start=0&postdays=0&postorder=asc&highlight=

more ▼

answered Nov 24 '09 at 05:14 AM

darrelcusey gravatar image

darrelcusey
22 2

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x232

asked: Nov 23 '09 at 01:22 PM

Seen: 24345 times

Last Updated: Feb 14 at 09:31 AM