查看: 4174|回复: 67

[网络] ASP.net+Unity3D完美实现数据库操作方法(已测通过各个平台)

[复制链接]

113

主题

49

听众

597

积分

总版主任

Rank: 8Rank: 8

发表于 2012-11-26 22:18 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
资源信息 Tutorial Information
教程名称: ASP.net+Unity3D+mssql完美实现数据库操作方法(发布原创教程可获得更多积分哦!)
适用引擎: (资源适用引擎)
教程语种: 中文
教程等级: 新秀(等级越高教程越难,但能学到的东西越多)
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 多米诺 (如有问题请短消息联系作者或发表回复)
点击查看原图 --> 美丽分割线
回复可见
哇伊~ (((‵□′))回复太烦了,怒买VIP(充值金额将用于论坛采购更多资源)

--> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 -->
http://www.u3dchina.com/forum.php?mod=viewthread&tid=323
很多同学用到这样方法导出时无法实现操作数据库,由于U3D对dll支持并不是很完美,这里给出一个交给web端来处理的详细教程可以解决各个平台操作mssql的问题。php、mysql等同理
接下来我们通过在数据库中插入字段来讲解此教程。
1、打开mssql 创建一个表tb_Message
  1. create table tb_Message
  2. (
  3. guest_id int IDENTITY(1,1) primary key,
  4. guest_name nvarchar(20),
  5. guest_score nvarchar(255),
  6. guest_message nvarchar(255),
  7. )
复制代码
注:nvarchar类型支持中文字符



2、打开vs新建一个asp.net的网站
web.config配置如下:
注:如有防火墙请填写端口号
  1. <?xml version="1.0"?>

  2. <!--
  3.   有关如何配置 ASP.NET 应用程序的详细信息,请访问
  4.   http://go.microsoft.com/fwlink/?LinkId=169433
  5.   -->

  6. <configuration>
  7.   <appSettings>
  8.     <add key="connString" value="Data Source=Sql1001.u3dchina.com,2433;Initial Catalog=DB_98CEEF_test;User Id=DB_98CEEF_test_admin;Password=testtest;"/>
  9.   </appSettings>
  10.   <system.web>
  11.     <compilation debug="true" targetFramework="4.0" />
  12.   </system.web>

  13. </configuration>
复制代码
这里定义数据库连接字符串
为了方便数据操作,新建一个app_code(自带的),添加dbhelper
在对应的.aspx.cs中添加如下代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;

  7. public partial class _Default : System.Web.UI.Page
  8. {
  9.     DbHelper help = new DbHelper();
  10.     protected void Page_Load(object sender, EventArgs e)
  11.     {
  12.         string guest_name=Request.Form["post_name"];
  13.         string guest_score=Request.Form["post_score"];
  14.         string guest_message=Request.Form["post_message"];
  15.         string insertsql = "insert into tb_Message (guest_name,guest_score,guest_message) values('" + guest_name + "','"+guest_score+"','"+guest_message+"')";
  16.         if (help.Exists(selectsql))
  17.         {
  18.             Response.Write("have the name!");

  19.         }
  20.         else
  21.         {
  22.             Response.Write("Don't have the name!");
  23.             string insertsql = "insert into tb_Message (guest_name,guest_score,guest_message) values('nvchar测试姓名','varchar测试分数',N'text带n测试')";
  24.             if (help.ExecuteSqlInt(insertsql) > 0)
  25.                 Response.Write("Insertsuccess");
  26.             else
  27.                 Response.Write("Insertfailed");
  28.         }
  29.       
  30.     }
  31. }
原理:通过form临时数据存取提取unity3d的中的form请求,在网页中接受值并对数据库进行操作
右键在浏览器中查看
显示:Don't have the name!Insertsuccess
检测结果:正常  进入网络mssql中可以查看到这些数据
三、在u3d中创建一个c#脚本:
代码如下:

  1. using UnityEngine;
  2. using System.Collections;

  3. public class insert : MonoBehaviour {
  4.         private string url="http://localhost:50163/WebSite2/Default.aspx";//本地地址
  5.         private string txt_Name="";
  6.         private string txt_Score="";
  7.         private string txt_Message="";
  8.         // Use this for initialization
  9.         void Start () {
  10.         
  11.         }
  12.         
  13.         // Update is called once per frame
  14.         void Update () {
  15.         
  16.         }
  17.         void OnGUI()
  18.         {
  19.                 txt_Name=GUI.TextField(new Rect(10,10,100,30),txt_Name);
  20.                 txt_Score=GUI.TextField(new Rect(10,50,100,30),txt_Score);
  21.                 txt_Message=GUI.TextField(new Rect(10,90,100,30),txt_Message);
  22.                 if(GUI.Button(new Rect(10,130,100,30),"submit"))
  23.                 {
  24.                         StartCoroutine(InsertMethod());
  25.                 }
  26.         }
  27.         IEnumerator InsertMethod()
  28.         {
  29.                 WWWForm form=new WWWForm();
  30.                 form.AddField("post_name",txt_Name);
  31.                 form.AddField("post_score",txt_Score);
  32.                 form.AddField("post_message",txt_Message);
  33.                 WWW w=new WWW(url,form);
  34.          yield return w;
  35.                 print (w.text);
  36.                
  37.         }
  38. }
绑定运行,查看print结果,查看数据库插入成功或提示已存在!

如上图的积分排名就是此种方式实现的

本帖子中包含更多资源

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

楼主热帖
已有 2 人评分鲜花 收起 理由
1287537617aa + 1
aa1287537617 + 1

总评分: 鲜花 + 2   查看全部评分

下班回家

113

主题

49

听众

597

积分

总版主任

Rank: 8Rank: 8

发表于 2012-11-26 22:22 |显示全部楼层
希望大家多多发布教程 共同探讨
下班回家
回复

使用道具 举报

0

主题

10

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2012-11-28 09:36 |显示全部楼层
挺好的  你这生成以后没啥问题吧, 我以前弄的一生成 WEB 版的就 完蛋。。。顶你下
回复

使用道具 举报

2

主题

10

听众

549

积分

大学生

Rank: 3Rank: 3

升级   3.27%

发表于 2012-11-28 13:24 |显示全部楼层
不用客户端的数据吗?这样会不会用加密数据
回复

使用道具 举报

0

主题

9

听众

200

积分

小学生

Rank: 2

升级   0%

发表于 2012-11-28 16:29 |显示全部楼层
不错谢谢分享  
回复

使用道具 举报

0

主题

9

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2013-4-7 23:14 |显示全部楼层

不错 不错 不错
回复

使用道具 举报

0

主题

9

听众

204

积分

小学生

Rank: 2

升级   1.33%

发表于 2013-5-3 10:59 |显示全部楼层

不错 不错 不错
回复

使用道具 举报

0

主题

10

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2013-5-8 23:04 |显示全部楼层
這個好,我要了
回复

使用道具 举报

0

主题

9

听众

204

积分

小学生

Rank: 2

升级   1.33%

发表于 2013-5-25 19:27 |显示全部楼层
好厉害的样子
回复

使用道具 举报

3

主题

10

听众

421

积分

小学生

Rank: 2

升级   73.67%

发表于 2013-5-25 21:16 |显示全部楼层
感谢分享
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 苏ICP备12051100号 )   

GMT+8, 2018-9-21 20:17 , Processed in 0.138618 second(s), 86 queries .