强子 发表于 2013-3-5 08:55

在VS2010编译dll 将链接sql string封装到dll 并且在unity中调用

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace connectionDllUnityTest
{
    public class ConnectionTest
    {
      public ConnectionTest()
      {

      }

      public SqlCommand buildCmd(string cmdText, string conStr)
      {
            SqlConnection con = new SqlConnection(conStr);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = cmdText;
            return cmd;
      }

      //public Collection<string> returnTest(string cmdText, string conStr)
      //{
      //    Collection<string> result = new Collection<string>();
      //    SqlConnection con = new SqlConnection(conStr);
      //    SqlCommand cmd = new SqlCommand();
      //    cmd.Connection = con;
      //    cmd.CommandText = cmdText;
      //    try
      //    {
      //      con.Open();
      //      SqlDataReader dr = cmd.ExecuteReader();
      //      while (dr.Read())
      //      {
      //            result.Add(dr.ToString());
      //      }
      //    }
      //    catch (SqlException ex)
      //    {
      //      return new ApplicationException(ex.Message);
      //    }
      //    finally
      //    {
      //      con.Close();
      //    }

      //}

      public Collection<string> test()
      {
            string conStr1 = @"Data Source=Sql1001.webweb.com,2433;Initial Catalog=DB_98CEEF_test;User Id=DB_98CEEF_test_admin;Password=testtest";
            Collection<string> result = new Collection<string>();
            string cmdText1 = "SELECT * FROM tb_User";
            SqlConnection con = new SqlConnection(conStr1);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = cmdText1;

            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                result.Add(dr.ToString());
            }
            dr.Close();
            con.Close();

            return result;
      }
    }
}
名为:ConnectionTest.cs
在VS中把.cs生成.dll 首先点解决方案--> 添加--> 新建项目-->类库

在类库的.CS文件编写代码

代码写完后

点解决方案-->生成解决方案

找到其根目录-->Bin文件夹--> Debug文件夹里就是你想要的.DLL文件了

打开unity3d,
写入如下代码:using UnityEngine;
using System.Collections;
//using connectionDllUnityTest;
using System.Runtime.InteropServices;
using System.Collections.ObjectModel;

public class conDb1 : MonoBehaviour {
    private Collection<string> result = new Collection<string>();
    // Use this for initialization
    void Start ()
    {
      connectionDllUnityTest.ConnectionTest ct = new connectionDllUnityTest.ConnectionTest();
      
      result = ct.test();
    }
   
    // Update is called once per frame
    void Update () {
   
    }
   
   
    private static extern Collection<string> test();
    void OnGUI()
    {
      GUI.Label(new Rect(10, 10, 200, 40), result);
    }
}
并引入将编译好的dll引入unity,并引入:i18n.dll、i18n.cjk、i18n.West
如果发布到网页,dll仍然不能编译过去。。。。无解中。痛苦

lovesky4 发表于 2013-4-6 21:17

{:5_424:}{:5_424:}{:5_424:}{:5_424:}

hetianlong 发表于 2017-3-5 12:18

很不错

神经熙熙 发表于 2017-3-5 11:26

好帖就是要顶

神经熙熙 发表于 2017-3-5 12:05

顶顶多好

草根 发表于 2017-3-5 11:52

真心顶

youxi02 发表于 2017-3-5 11:59

难得一见的好帖

yejiaobo 发表于 2017-3-13 14:07

楼主是超人

迷雾森林 发表于 2017-3-13 14:16

好帖就是要顶

随意随忆2011 发表于 2017-3-13 14:38

顶顶多好
页: [1]
查看完整版本: 在VS2010编译dll 将链接sql string封装到dll 并且在unity中调用