找回密码
 立即注册
查看: 10591|回复: 92

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

[复制链接]
发表于 2012-11-26 22:18 | 显示全部楼层 |阅读模式
资源信息 Tutorial Information
教程名称: ASP.net+Unity3D+mssql完美实现数据库操作方法(发帖教程)
适用引擎:   (适用引擎,为空默认为Unity)
教程语种: 中文
教程等级: 2
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 多米诺 (如有问题请短消息联系作者或发表回复)
下载地址: 请先登录 (兑换积分)
点击查看原图
美丽分割线
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鲜花 +2 收起 理由
1287537617aa + 1
aa1287537617 + 1

查看全部评分

 楼主| 发表于 2012-11-26 22:22 | 显示全部楼层
希望大家多多发布教程 共同探讨{:soso_e100:}
发表于 2012-11-28 09:36 | 显示全部楼层
挺好的  你这生成以后没啥问题吧, 我以前弄的一生成 WEB 版的就 完蛋。。。顶你下
发表于 2012-11-28 13:24 | 显示全部楼层
不用客户端的数据吗?这样会不会用加密数据
发表于 2012-11-28 16:29 | 显示全部楼层
不错谢谢分享  {:5_427:}
发表于 2013-4-7 23:14 | 显示全部楼层

不错 不错 不错{:soso__3922851084632044791_6:}
发表于 2013-5-3 10:59 | 显示全部楼层

不错 不错 不错{:soso__3922851084632044791_6:}
发表于 2013-5-8 23:04 | 显示全部楼层
這個好,我要了
发表于 2013-5-25 19:27 | 显示全部楼层
好厉害的样子
发表于 2013-5-25 21:16 | 显示全部楼层
感谢分享{:5_399:}
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 01:48 , Processed in 0.132742 second(s), 35 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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