[网络开发教程] ASP.net+Unity3D完美实现数据库操作方法(已测通

很多同学用到这样方法导出时无法实现操作数据库,由于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结果,查看数据库插入成功或提示已存在!

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

你可能感兴趣的:([网络开发教程] ASP.net+Unity3D完美实现数据库操作方法(已测通)