开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1624

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 1742|回复: 14

[alayeshi] Unity连接SQL数据库方法

[复制链接]  [移动端链接]
排名
2844
昨日变化
1

54

主题

196

帖子

1003

积分

Rank: 9Rank: 9Rank: 9

UID
54986
好友
8
蛮牛币
9521
威望
0
注册时间
2014-11-12
在线时间
289 小时
最后登录
2017-3-20

专栏作家

发表于 2016-8-23 18:48:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
由于Unity版本更新太快。在以前的版本中,在unity的编辑器里引用在unity安装目录下的31\Editor\Data\Mono\lib\mono\unity里面的System.Data.dll程序集就OK了。但是在unity5.3的版本里这种方法是不能用的。那么只能用另种方法了。下面讲的方法是万能的方法,不论是在unity的哪个版本都可以用。那就是是VS里建一个类库,然后生成一个.dll文件。最后把这个生成的.dll文件放到unity的asset文件夹里就OK了。

举个实例:
首先在vs里写出连接数据库的方法(这里用的是VS2013和SQL server2008)

[C#] 纯文本查看 复制代码
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Data;  
using System.Data.SqlClient;  
  
namespace ClassLibrary2  
{       
    public class Class1  
    {  
       
        public  static string  ss;  
      
       public static string   getdata()  
        {  
  
            string s = "server=.;database=zhuanlu;uid=sa;pwd=123456"; //注意这里s是连接数据库的,database是数据库名字,uid是数据库用户名,pwd是密码。  
            SqlConnection con = new SqlConnection(s);//这个是用来连接数据库的  
            con.Open();  
            string sql = "select age from unity 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;  
                              
                 
            }  
  
  
    }  
     
}  


现在数据库里有一个名为unity的表 11.png


这样在这个VS程序里就实现了数据库的连接。

然后把它生成一个类库,方法是右键这个项目然后如图:(目标框架选择4.0以下版本,输出类型选择类库)

22.png


然后在VS的菜单里点击生成--重新生成解决方案,这样就编译了这个类库,它会形成一个.dll文件。之后再右击项目--在文件资源管理器中打开文件,如下图:

33.png


然后我们找到那个生成的.dll文件。如下:(注意文件路径是在bin/Debug里)

44.png


然后把这个.dll文件放到unity的asset文件夹里。在unity里建立一个text来显示查询的数据:

55.png


最后在unity里写一段代码进行调用.dll文件里的方法来查询数据。

代码如下:

66.png


最后运行效果:

77.png

这样在unity里连接到了数据库,并且可以获取数据库里的数据。



回复

使用道具 举报

5熟悉之中
514/1000
排名
3803
昨日变化
2

10

主题

96

帖子

514

积分

Rank: 5Rank: 5

UID
66514
好友
2
蛮牛币
678
威望
0
注册时间
2015-1-7
在线时间
152 小时
最后登录
2017-3-24
发表于 2016-8-24 09:17:18 | 显示全部楼层

回帖奖励 +1

如果需要返回一个DataTable类型的话,应该在Unity脚本里怎么处理?

回复 支持 反对

使用道具 举报

5熟悉之中
687/1000
排名
3099
昨日变化
3

3

主题

96

帖子

687

积分

Rank: 5Rank: 5

UID
144553
好友
3
蛮牛币
2048
威望
0
注册时间
2016-4-5
在线时间
274 小时
最后登录
2017-3-24
发表于 2016-8-24 17:48:25 | 显示全部楼层
楼主棒棒哒

回复

使用道具 举报

3偶尔光临
230/300
排名
7511
昨日变化
5

0

主题

79

帖子

230

积分

Rank: 3Rank: 3Rank: 3

UID
158905
好友
0
蛮牛币
755
威望
0
注册时间
2016-7-26
在线时间
49 小时
最后登录
2017-3-5
QQ
发表于 2016-8-25 09:22:59 | 显示全部楼层
還是那麽地無聊啊
[发帖际遇]: 一个袋子砸在了 曾军 头上,曾军 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
895/1000
排名
2157
昨日变化
9

1

主题

127

帖子

895

积分

Rank: 5Rank: 5

UID
157507
好友
1
蛮牛币
1595
威望
0
注册时间
2016-7-18
在线时间
315 小时
最后登录
2017-3-26
QQ
发表于 2016-8-25 19:13:57 | 显示全部楼层
老办法一样可以在unity5.3.5里面用,并且实测在安卓读取都成功。但是楼主的这个办法,谁能肯定在安卓一定调用成功?试过没有?

回复 支持 反对

使用道具 举报

排名
2844
昨日变化
1

54

主题

196

帖子

1003

积分

Rank: 9Rank: 9Rank: 9

UID
54986
好友
8
蛮牛币
9521
威望
0
注册时间
2014-11-12
在线时间
289 小时
最后登录
2017-3-20

专栏作家

 楼主| 发表于 2016-8-25 19:23:58 | 显示全部楼层
lesterlzy 发表于 2016-8-25 19:13
老办法一样可以在unity5.3.5里面用,并且实测在安卓读取都成功。但是楼主的这个办法,谁能肯定在安卓一定调 ...

我当时用的5.3.1的版本,5.3没有试过。

回复 支持 反对

使用道具 举报

5熟悉之中
895/1000
排名
2157
昨日变化
9

1

主题

127

帖子

895

积分

Rank: 5Rank: 5

UID
157507
好友
1
蛮牛币
1595
威望
0
注册时间
2016-7-18
在线时间
315 小时
最后登录
2017-3-26
QQ
发表于 2016-8-26 10:59:22 | 显示全部楼层
alayeshi 发表于 2016-8-25 19:23
我当时用的5.3.1的版本,5.3没有试过。

Unity坑巨多。总是这里问题那里问题。比如5。3。5 自带的水又出问题了。其他版本的又正常。

回复 支持 反对

使用道具 举报

排名
44743
昨日变化
260

0

主题

10

帖子

18

积分

Rank: 1

UID
122203
好友
0
蛮牛币
14
威望
0
注册时间
2015-9-11
在线时间
6 小时
最后登录
2016-8-26
发表于 2016-8-26 12:14:25 | 显示全部楼层
不错 感谢分享!!!!!!!!!!

回复

使用道具 举报

6蛮牛粉丝
1259/1500
排名
2639
昨日变化
16

0

主题

581

帖子

1259

积分

Rank: 6Rank: 6Rank: 6

UID
124845
好友
0
蛮牛币
124
威望
0
注册时间
2015-10-8
在线时间
310 小时
最后登录
2017-3-25
发表于 2016-8-27 10:49:52 | 显示全部楼层

楼主棒棒哒

回复

使用道具 举报

6蛮牛粉丝
1057/1500
排名
1214
昨日变化
6

4

主题

65

帖子

1057

积分

Rank: 6Rank: 6Rank: 6

UID
122711
好友
0
蛮牛币
2333
威望
0
注册时间
2015-9-15
在线时间
296 小时
最后登录
2017-3-26
发表于 2016-8-29 11:56:29 | 显示全部楼层
lesterlzy 发表于 2016-8-25 19:13
老办法一样可以在unity5.3.5里面用,并且实测在安卓读取都成功。但是楼主的这个办法,谁能肯定在安卓一定调 ...

请问下你所说的在安卓中可以正常使用的老办法,指的是?谢谢

回复 支持 反对

使用道具 举报

5熟悉之中
895/1000
排名
2157
昨日变化
9

1

主题

127

帖子

895

积分

Rank: 5Rank: 5

UID
157507
好友
1
蛮牛币
1595
威望
0
注册时间
2016-7-18
在线时间
315 小时
最后登录
2017-3-26
QQ
发表于 2016-8-29 19:42:15 | 显示全部楼层
墨家教徒 发表于 2016-8-29 11:56
请问下你所说的在安卓中可以正常使用的老办法,指的是?谢谢

http://blog.csdn.net/glunoy/article/details/52037598
经本人亲自实验

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1057/1500
排名
1214
昨日变化
6

4

主题

65

帖子

1057

积分

Rank: 6Rank: 6Rank: 6

UID
122711
好友
0
蛮牛币
2333
威望
0
注册时间
2015-9-15
在线时间
296 小时
最后登录
2017-3-26
发表于 2016-8-29 20:23:12 | 显示全部楼层
lesterlzy 发表于 2016-8-29 19:42
http://blog.csdn.net/glunoy/article/details/52037598
经本人亲自实验

真的灰常灰常感谢的说poi

回复 支持 反对

使用道具 举报

3偶尔光临
216/300
排名
7078
昨日变化
2

1

主题

52

帖子

216

积分

Rank: 3Rank: 3Rank: 3

UID
795
好友
2
蛮牛币
518
威望
10
注册时间
2013-7-11
在线时间
51 小时
最后登录
2016-9-19

社区QQ达人

发表于 2016-9-19 15:22:45 | 显示全部楼层
SocketException: 由于目标计算机积极拒绝,无法连接。 这是什么鬼。。。
[发帖际遇]: D的意志 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

4四处流浪
458/500
排名
3712
昨日变化

2

主题

49

帖子

458

积分

Rank: 4

UID
100019
好友
0
蛮牛币
666
威望
0
注册时间
2015-5-13
在线时间
147 小时
最后登录
2017-3-14
发表于 2016-10-28 16:57:02 | 显示全部楼层
你好,楼主,我按照你的方法做的,为什么连接不上呢

回复 支持 反对

使用道具 举报

4四处流浪
458/500
排名
6037
昨日变化
64

0

主题

235

帖子

458

积分

Rank: 4

UID
3796
好友
0
蛮牛币
540
威望
0
注册时间
2013-9-13
在线时间
81 小时
最后登录
2017-3-25
发表于 2017-3-7 17:42:19 | 显示全部楼层
感谢分享!!!!!!!!!!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表