我刚刚开始使用C#,对此并不了解。我正在使用名为Unity的3d游戏引擎并尝试编写一个c#脚本来访问我正在运行的MySQL数据库。 MySQL数据库位于不同的计算机上。我的问题是如何使用C#访问MySQL数据库。我知道我想要使用的用户名,密码和数据库,但我无法弄清楚如何访问数据库。
答案 0 :(得分:2)
您需要获取C#MySQL驱动程序:http://dev.mysql.com/downloads/connector/net/
然后您需要按照MySQL手册进行设置和使用。它是一个标准的ADO.NET驱动程序,因此您应该能够关注大多数C#SQL教程以获得更多帮助。
答案 1 :(得分:1)
昨天我遇到了同样的问题,并且找到了一个令人满意的解决方案,该解决方案可在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.");
}
}
答案 2 :(得分:0)
Unity3D使用剥离的Mono.net,它不直接支持数据库。您可以在C#.NET中编写自己的DLL,它可以为您进行数据访问。然后是add it in your Unity3D project。
在编写自己的DLL时,请确保将该DLL带到项目中时,还要将引用的DLL复制到同一文件夹中。最好的方法是使用Mono.NET。
答案 3 :(得分:0)
您可以在Unity Wiki中找到使用PHP,MySQL和C#/ JavaScript的过程。
它包括三个步骤
答案 4 :(得分:-1)
迟到的答案,但也许这会对其他人有帮助。
我实际上可以在我的非游戏Unity应用程序上访问我的服务器端sql数据库。在我的情况下,我的应用程序控制用户序列号是否为true。用户输入序列号后,我的应用程序开始比较sql数据库上的序列号。您可以使用此Server Side Highscores Tutorial作为起点。我做了同样的事。按照这些步骤,您应该能够访问Unity上的SQL数据库。
答案 5 :(得分:-1)
Unity的数据库(SQLite)设置 创建新文件夹
在资产文件夹下创建新文件夹重命名插件。
将sqlite3.def和sqlite3.dll复制到Unity项目的Assets / Plugins中。您可以在这里下载这些文件http://www.sqlite.org/download.html for windows(Windows的预编译二进制文件)
将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;
}
这些是有用的链接:
进一步的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 ();
}
}