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

扫一扫,访问微社区

开发者专栏

关注:1575

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

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

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

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

[复制链接]  [移动端链接]
排名
2782
昨日变化
3

53

主题

191

帖子

990

积分

Rank: 9Rank: 9Rank: 9

UID
54986
好友
8
蛮牛币
9411
威望
0
注册时间
2014-11-12
在线时间
284 小时
最后登录
2017-2-8

专栏作家

发表于 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里连接到了数据库,并且可以获取数据库里的数据。



回复

使用道具 举报

4四处流浪
447/500
排名
4292
昨日变化
29

10

主题

94

帖子

447

积分

Rank: 4

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

回帖奖励 +1

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

回复 支持 反对

使用道具 举报

5熟悉之中
607/1000
排名
3464
昨日变化
18

3

主题

88

帖子

607

积分

Rank: 5Rank: 5

UID
144553
好友
3
蛮牛币
1777
威望
0
注册时间
2016-4-5
在线时间
242 小时
最后登录
2017-2-22

迈向小康

发表于 2016-8-24 17:48:25 | 显示全部楼层
楼主棒棒哒

回复

使用道具 举报

3偶尔光临
225/300
排名
7435
昨日变化
9

0

主题

79

帖子

225

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

5熟悉之中
780/1000
排名
2425
昨日变化
2

1

主题

110

帖子

780

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

排名
2782
昨日变化
3

53

主题

191

帖子

990

积分

Rank: 9Rank: 9Rank: 9

UID
54986
好友
8
蛮牛币
9411
威望
0
注册时间
2014-11-12
在线时间
284 小时
最后登录
2017-2-8

专栏作家

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
780/1000
排名
2425
昨日变化
2

1

主题

110

帖子

780

积分

Rank: 5Rank: 5

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

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

回复 支持 反对

使用道具 举报

排名
43461
昨日变化
172

0

主题

10

帖子

18

积分

Rank: 1

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

回复

使用道具 举报

6蛮牛粉丝
1063/1500
排名
3073
昨日变化
16

0

主题

486

帖子

1063

积分

Rank: 6Rank: 6Rank: 6

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

楼主棒棒哒

回复

使用道具 举报

5熟悉之中
981/1000
排名
1352
昨日变化

4

主题

65

帖子

981

积分

Rank: 5Rank: 5

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
780/1000
排名
2425
昨日变化
2

1

主题

110

帖子

780

积分

Rank: 5Rank: 5

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

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

回复 支持 反对

使用道具 举报

5熟悉之中
981/1000
排名
1352
昨日变化

4

主题

65

帖子

981

积分

Rank: 5Rank: 5

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

真的灰常灰常感谢的说poi

回复 支持 反对

使用道具 举报

3偶尔光临
216/300
排名
6903
昨日变化
7

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四处流浪
457/500
排名
3655
昨日变化
4

2

主题

49

帖子

457

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

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

本版积分规则

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