第一种
1.先以"Windows身份验证"进行连接,在"对象资源管理器"下选择"安全性\登录名\新建登录名",填写登录名,密码,取消勾选"强制密码过期",在"服务器角色"中勾选"sysadmin"(给予管理员权限),点击确定。
2.点击"文件\连接对象资源管理器",用刚才的登录名和密码进行登录,并且创建数据库和表,填写数据。
3.在"\Editor\Data\Mono\lib\mono\unity"下找到System.Data.dll,复制到\Assets目录下,在vs中添加对"System.Data.dll"的引用。
4.using UnityEngine;
using System.Collections;
using System;
using System.Data;
using System.Data.SqlClient;
public class TestSql : MonoBehaviour {
SqlConnection con = null;
SqlDataAdapter sda = null;
void Start()
{
//数据库名,用户名,密码
string s = @"server=127.0.0.1;database=UnitySql;uid=wanglijuan;pwd=0107";
con = new SqlConnection(s);
con.Open();
string sql = "select * from table1";
sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
sda.Fill(ds, "table1");
print(ds.Tables[0].Rows[0][1]);
}
// Update is called once per frame
void Update () {
}
}
第二种
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ClassLibrary1
{
public class Class1
{
public static string ss;
public static string getdata()
{
string s = @"server=127.0.0.1;database=UnitySql;uid=wanglijuan;pwd=0107"; //注意这里s是连接数据库的,database是数据库名字,uid是数据库用户名,pwd是密码。
SqlConnection con = new SqlConnection(s);//这个是用来连接数据库的
con.Open();
string sql = "select age from table1 where ID=1";//数据库查询语句
SqlCommand com = new SqlCommand(sql, con);//数据库命令定义
com.ExecuteNonQuery();//执行SQL
SqlDataReader read = com.ExecuteReader();//读取数据库内容
if (read.Read())
{
ss = read["age"].ToString();
}
return ss;
}
}
}
这样在这个VS程序里就实现了数据库的连接。
然后把它生成一个类库,方法是右键这个项目然后如图:(目标框架选择4.0以下版本,输出类型选择类库)
然后在VS的菜单里点击生成--重新生成解决方案,这样就编译了这个类库,它会形成一个.dll文件。之后再右击项目--在文件资源管理器中打开文件,如下图:
然后我们找到那个生成的.dll文件。如下:(注意文件路径是在bin/Debug里)
然后把这个.dll文件放到unity的asset文件夹里。在unity里建立一个text来显示查询的数据:
最后在unity里写一段代码进行调用.dll文件里的方法来查询数据。
代码如下:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using ClassLibrary1;
public class sql : MonoBehaviour {
public Text t;
// Use this for initialization
void Start () {
t.text = ClassLibrary1.Class1.getdata();
print("查询的数据是:"+t.text);
}
// Update is called once per frame
void Update () {
}
}
最后运行效果: