文档章节

Unity链接SqlServer数据库并进行简单的数据查询

Kerwin_zZ
 Kerwin_zZ
发布于 2017/08/14 19:37
字数 771
阅读 4K
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1、我写的程序不需要数据库

    写了好久的unity单机应用,终于鼓起勇气说服自己尝试连接数据库,并着手学习写网络应用了。谨以此纪念我不思进取的青春吧。

    在unity中,数据的存储方式很多,但是最实用的仍然还是用数据库的方式。那么具体应该怎么操作呢?

 

2、我需要点什么

    首先,我需要给自己的电脑装上SqlServer数据库。至于怎么下载和安装,请未来的我自己百度,这里不做赘述。

    第二,我们安装好SqlServer之后,打开SqlServer配置管理器,启动如下服务。

    第三,创建名为Test的数据库,创建一个Table_1的表,并添加一条数据为张三,如下图所示:

    到此关于SqlServer方面的准备就已经做好了。

    第四,既然是Unity的数据连接,当然需要你的电脑至少有Unity和VS啦。我这里用的版本是Unity2017和VS2017。

 

3、那么开始吧

    首先,打开Unity,创建新工程。并在unity的安装路径下找到 System.Data.dll 文件。具体路径为 Unity安装路径\Unity\Editor\Data\Mono\lib\mono\unity\。将此文件复制到Unity工程Assets目录下。

    这样就可以开始写脚本连接数据库对数据进行操作了,但是这样会存在一个问题,就是当程序发布出去之后,你的数据库就没有办法连接了。在这种情况下,我们需要在上述同样路径下找到以下文件,并将其复制到unity工程Assets目录下。

这里写图片描述

    然后新建一个名为sqltest的c#脚本,用VS打开,在项目解决方案的引用中检查是否成功引用刚刚导入的几个文件,如果成功导入,则可以开始编辑脚本;如果没有,则应该添加对应引用。

    脚本内容及注释如下所示:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Data;
using System.Data.SqlClient;

public class sqltest : MonoBehaviour {

    //数据库连接的定义
    private SqlConnection sqlCon;
    //数据库连接地址
    private string sqlAddress = "server=192.168.200.21;database=Test;uid=sa;pwd=123456";
    //适配器
    SqlDataAdapter sda = null;

    // Use this for initialization
    void Start()
    {
        //传建一个数据库连接事件
        sqlCon = new SqlConnection(sqlAddress);
    }

    // Update is called once per frame
    void Update()
    {
        //按下空格键,执行对应操作
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("space down");
            try
            {
                //打开连接
                sqlCon.Open();
                //连接成功
                Debug.Log("Yes");
                //数据库操作语句
                string sql = "select * from Table_1";
                //数据库操作
                sda = new SqlDataAdapter(sql, sqlAddress);
                //结果集
                DataSet ds = new DataSet();
                //将查询的结果放入结果集
                sda.Fill(ds, "Table_1");
                //打印结果
                print(ds.Tables[0].Rows[0][0]);
            }

            //如果出现异常,抛出
           catch (System.Exception)
           {
            Debug.Log("No");
            throw;
           }

        }
        //空格键抬起,数据库连接关闭
        else if (Input.GetKeyUp(KeyCode.Space)) {
            Debug.Log("space up");
            sqlCon.Close();
        }
    }
}

    脚本编译完成,保存,将脚本绑定到某一游戏物体上。运行,按下空格键,运行结果如下所示:

 

    4、最后说两句

    好久没写博客了啊,要坚持要坚持~

 

Kerwin_zZ
粉丝 10
博文 119
码字总数 154291
作品 0
海淀
项目经理
私信 提问
加载中
请先登录后再评论。
第十节:基于MVC5+Unity+EF+Log4Net的基础结构搭建

一. 前言   本节继续探讨一种新的框架搭建模式,框架的结构划分和上一节是相同的,本节IOC框架换成了Unity,并且采用构造函数注入的方式,另外服务层的封装模式也发生了变化,下面将详细的...

osc_cfifvnio
2018/11/20
2
0
Unity连接Sql数据库(PC端)

声明:Unity版本:5.2.3f1,数据库版本:SqlServer 2008 1.复制System.Data.Dll文件到Unity工程中(与Unity的安装路径有关) 注意:复制后的文件放在与你代码同级目录即可 2. 新建一个用于连...

osc_6bhtl1uw
2018/12/28
4
0
基于.net EF6 MVC5+WEB Api 的Web系统框架总结(3)-项目依赖注入

简介   依赖注入主要是一种结构性的模式,注重的是类与类之间的结构,它要达到的目的就是设计原则中最少知道和合成复用的原则,减少内部依赖,履行单一职责,最终就是强解耦。依赖注入目前...

osc_kwrafgul
2019/09/10
2
0
ScutSDK 0.95 版本发布

ScutSDK 简介: ScutSDK 是和 Scut 游戏服务器引擎,简化客户端开发的配套 SDK,她彻底打通了 Scut 开源游戏服务器引擎与客户端引擎(如Cocos2d-x/Quick-x/Unity3D)项目间的通信,进而实现整...

ScutGame
2013/12/24
1.4K
0
ScutSDK 0.9 版本发布

ScutSDK 简介: ScutSDK 是和 Scut 游戏服务器引擎,简化客户端开发的配套 SDK,她彻底打通了 Scut 开源游戏服务器引擎与客户端引擎(如Cocos2d-x/Quick-x/Unity3D)项目间的通信,进而实现整...

ScutGame
2013/12/21
1.7K
0

没有更多内容

加载失败,请刷新页面

加载更多

跨越了6个阶段,我仍然是生物信息学初学者

首先非常欢迎大家分享自己与生物信息学/生信技能树的故事! 上一期是:我如何从生物科学到生物信息 这一期是我在朋友圈看到了我们单细胞天地常驻编辑周运来的真情流露,邀请他投稿的我们生信...

biotrainee
前天
17
0
网飞是如何运用心理学来完善其客户体验的

原文地址:https://36kr.com/p/5289228 译者:俊一 占据全球网站流量 15%的奈飞,其用户体验设计背后有哪些秘密? 神译局是 36 氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍...

高行
02/08
9
0
shell编程中的循环脚本

本文中的部分脚本来源于网络,就不申明原创了,如果这些东西自己学会了,那就是属于自己的了。 求从1加到100的和 使用for循环求和: #!/bin/bash declare -i sum=0 for ((i=1;i<=100;i++));...

Double_冬
2018/08/16
7
0
智能合约:介绍、geth、Ethereum Wallet

从看雪论坛换了一本《智能合约安全分析和审计指南》,看了一些智能合约相关的内容,因为我之前对于区块链的了解仅仅是只知道世界上有一种叫做比特币的东西,所以对于这些概念的理解还是比较困...

yichen115
04/26
9
0
Vue和React技术风格上的不同

在主流框架中,Vue和React都属于全球热门,各自有着大量用户,两者之间的优缺点便带来了众多讨论。 那么这两者之间的关键区别在于哪些方面?为何熟练掌握Vue成为越来越多公司的岗位要求? Vu...

若川
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部