unity3d链接postgresql,读数据库内容并且显示(读出的中文在编辑器中乱码,发布standalone正常)

新建一个场景,此脚本挂着相机上,同时提前在网站http://blog.csdn.net/FlashDragon/article/details/4789980准备工作(如导入Npgsql.dll和System.Data.dll)
 
 
 
 
using UnityEngine;
using Npgsql;
using System.Data;

public class postgresql : MonoBehaviour
{
    string strConnec;
    string strSelect;
    string strResult;
    NpgsqlConnection conn;

    /// <summary>
    /// 静态读取txt
    /// </summary>
    public TextAsset txtYxx;
    string strYxx;
    /// <summary>
    /// Resources
    /// </summary>
    string strYtext;

    // Use this for initialization
    void Start()
    {
        //strYxx = txtYxx.text;
        //print("读取的yxx.txt内容为:"+strYxx);

        //strYtext = ((TextAsset)Resources.Load("ytest")).text;
        //print(strYtext);

        try
        {
            //192.168.1.222
            strConnec = "Server=192.168.1.234;Port=5432;User Id=postgres;Password=root;Database=gafk";
            //strConnec = "Server=192.168.1.222;Port=5432;User Id=postgres;Password=root;Database=postgres";
            // strConnec = "Server=192.168.1.123;Port=5432;User Id=postgres;Password=root;Database=lucky;"; //charset ='utf8'";
            conn = new NpgsqlConnection(strConnec);
            conn.Open(); 
            if (conn.State == ConnectionState.Open)
            {
                print("Connection is on!");

                //strSelect = "SELECT mc FROM zydd  WHERE \"id\"='4028816a57e025bc0157e0c18b8c0027'";//单行查询
                strSelect = "SELECT mc,dm FROM zyll_local  WHERE xxlb='8'"; //多行查询

                //strSelect = "select name from luck where id='1'";
                // strSelect = "select name from yxx where id ='1'";
            }
        }
        catch (System.Exception ex)
        {
            print(ex);
        }
    }
    void OnGUI()
    {
        GUILayout.Label(" ");
        if (GUILayout.Button("connect to server"))
        {
            DataSet ds = new DataSet();
            NpgsqlDataAdapter da = new NpgsqlDataAdapter(strSelect,conn);
            da.Fill(ds);
            foreach (DataTable table in ds.Tables)
            {
                print("ds.Tables.Count;" + ds.Tables.Count);
                foreach (DataRow row in table.Rows)
                {
                    print("table.Rows.Count;" + table.Rows.Count);
                    foreach (DataColumn column in table.Columns)
                    {
                        print("table.Columns.Count;" + table.Columns.Count);

                        print(" 第1张表第2行2列数据是:" + ds.Tables[0].Rows[1][1]);

                        //strResult = row[column].ToString();
                        //print("1:" + row[column].ToString());
                        //print();                       
                    }
                }
            }
        }
        GUILayout.Label(strResult);
    }
    /*
     * 解决unity3d读写中文乱码
     //http://www.tuicool.com/articles/BriMR3
     * */
    //public void Read()
    //{
    //    try
    //    {
    //        string pathSource = "test.txt";
    //        using (FileStream fsSouce = new FileStream(pathSource,FileMode.Open,FileAccess.Read))
    //        {
    //            byte[] bytes = new byte[fsSouce.Length];
    //            int numBytesToRead = (int)fsSouce.Length;
    //            int numbytesRead = 0;
    //            while (numBytesToRead>0)
    //            {
    //                int n = fsSouce.Read(bytes,numbytesRead,numBytesToRead);
    //                if (n==0)
    //                {
    //                    break;
    //                }
    //                numbytesRead += n;
    //                numBytesToRead -= n;
    //            }
    //            numBytesToRead = bytes.Length;
    //           string str= UTF8Encoding.UTF8.GetString(bytes);
    //        }
    //    }
    //    catch (System.Exception)
    //    {

    //        throw;
    //    }
    //}
}
即将访问的数据库结构为:
 
 
 
 
运行中图为:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长,小编觉得挺实用的,因此分享给大家做个参考,
这篇文章主要介绍了Unity3D如何播放游戏视频,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解
这篇文章给大家分享的是有关Unity3D各平台路径是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、Resources路径 Reso...
小编给大家分享一下Unity3D如何实现移动平台上的角色阴影,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于目前主流使用Unity3.x在移动平...
如何解析基于Unity3D的平坦四叉树地形与Virtual Texture的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希
这篇文章主要介绍Unity3D如何实现动态分辨率降低渲染开销,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!之前项目降低分辨率我们都普...
这篇文章主要介绍了unity3d中如何使用屏幕空间改善shadowmap漏光,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编...
这篇文章主要介绍unity3d如何实现基于屏幕空间的描边,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Outline(Based on Image Space)由...
这篇文章给大家分享的是有关unity3d中导入fbx时的Scale是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Unity中点击GameOb...
这篇文章主要为大家展示了“unity3d中如何实现ttc转ttf及制作字体”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习
这篇文章主要介绍了unity3d中水彩风渲染有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
这篇文章将为大家详细讲解有关unity3d中图像压缩原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 图像可压缩...
这篇文章给大家分享的是有关unity3d中光照公式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。漫反射、高光、物理渲染(PBR...
小编给大家分享一下unity3d中光照探针的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我...
这篇文章将为大家详细讲解有关Unity3D中Rendering Paths及LightMode的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有
这篇文章将为大家详细讲解有关unity3d中图形学的光照原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,在...
这篇文章给大家分享的是有关unity3d中图片渲染流程是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。相关名词GPU(Graphic Pr...
本篇我们来介绍一下左侧工具栏中基本绘制的应用。 一、墙体绘制直墙 & 矩形墙绘制墙体时,可以看到上方的工具栏中对墙体进行参数的设定。 弧形墙在建筑版的户...
xlua是由腾讯维护的一个开源项目,我们可以在github上下载这个开源项目并查看一些相关文档官网:https://github.com/Tencent/xLua配置文档:https://github.com/Tencent/xLua/blob/master/Assets/XLua/Doc/hotfix.md常见问题解答:https://github.com/Tencent/xLua/blob/master/Assets/
我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。01 首先