unity SqLite读取行和列

这篇具有很好参考价值的文章主要介绍了unity SqLite读取行和列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity SqLite读取行和列,unity,sqlite,游戏引擎
unity SqLite读取行和列,unity,sqlite,游戏引擎
项目文件
链接:https://pan.baidu.com/s/1BabHvQ-y0kX_w15r7UvIGQ
提取码:emsg
–来自百度网盘超级会员V6的分享

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mono.Data.Sqlite;
using System;
using System.Data;
using System.Reflection;

public class ConnectSQL : MonoBehaviour
{

    public SqliteConnection m_SqliteConnection;
    public SqliteCommand m_SqliteCommand;
    public SqliteDataReader m_SqliteDataReader;
    private string m_data;
    private bool m_IsOpen;
    #region
    public void Start()
    {
        OpenDB();
    }
    private void OnDestroy()
    {
        CloseConnect();
    }
    private void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            if(m_IsOpen)
            {
                Select("img", "name");
              //  SelectColl("img", "qqq");
            }
           
        }
    }
    #endregion
    /// <summary>
    /// 打开数据库
    /// </summary>
    private void OpenDB()
    {
        try
        {
            string file = GetDataPath("test.db");
            m_SqliteConnection = new SqliteConnection(file);
            m_SqliteConnection.Open();
            m_IsOpen = true;
            m_SqliteCommand = m_SqliteConnection.CreateCommand();

            Debug.Log("打开成功");
           // ReadData();
         


        }
        catch (Exception e)
        {
            Debug.LogError(e.Message);
        }

    }
    /// <summary>
    /// 关闭数据库
    /// </summary>
    void CloseConnect()
    {
        m_SqliteConnection.Close();
        m_SqliteConnection = null;
        m_SqliteCommand.Dispose();
        m_SqliteCommand = null;
    }
    /// <summary>
    /// 不同平台地址
    /// </summary>
    /// <param name="databasePath"></param>
    /// <returns></returns>
    public string GetDataPath(string databasePath)
    {
#if UNITY_EDITOR
        return string.Concat("data source=", Application.streamingAssetsPath, "/", databasePath);
#endif
#if UNITY_ANDROID
            return string.Concat("URI=file:", Application.persistentDataPath, "/", databasePath);
#endif
#if UNITY_IOS
            return string.Concat("data source=", Application.persistentDataPath, "/", databasePath);
#endif
    }


    /// <summary>
    /// 读取整张表
    /// </summary>
    public void ReadData()
    {
        string sqlQuery = "SELECT * FROM img";   
        m_SqliteDataReader = ExecuteReader(sqlQuery);

        while (m_SqliteDataReader.Read())
        {
            for (int i = 0; i < m_SqliteDataReader.FieldCount; i++)
            {
                Debug.Log(m_SqliteDataReader.GetValue(i));
            }
        }
    }
    /// <summary>
    /// 读取行
    /// </summary>
    /// <param name="tableName">通过那列的命名来读取行</param>
    /// <param name="coll_value">读取那行的名字</param>
    public void SelectColl(string tableName, string coll_value)
    {

        string sql = "SELECT * FROM " + tableName + " WHERE name=" + "'" + coll_value + "'";//img是表名
       // string sql = "SELECT * FROM img WHERE name='asdad'";
        SqliteCommand sqliteCommand = new SqliteCommand(sql, m_SqliteConnection);
        SqliteDataReader sqliteDataReader = sqliteCommand.ExecuteReader();
        while (sqliteDataReader.Read())
        {
            for (int i = 0; i < sqliteDataReader.FieldCount; i++)
            {
                m_data += sqliteDataReader.GetValue(i)+",";
            }
        }

         Debug.Log(m_data);
        //接收到数据列入数据队
        // m_MySqlData.Enqueue(data);
        m_data = "";
        sqliteDataReader.Close();
        sqliteCommand.Dispose();
        sqliteDataReader = null;
        sqliteCommand = null;
    }
    /// <summary>
    /// 读取列
    /// </summary>
    /// <param name="tableName"></param>
    /// <param name="column_name">行的条件值</param>
    public void Select(string tableName, string column_name)
    {
        string sql = "SELECT " + column_name + " FROM " + tableName;
        SqliteCommand cmd = new SqliteCommand(sql, m_SqliteConnection);
        SqliteDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            for (int i = 0; i < reader.FieldCount; i++)
            {
                Debug.Log(reader.GetValue(i));
            }          
        }
        cmd.Dispose();
        reader.Close();
    }
    /// <summary>
    /// 执行SQL语句
    /// </summary>
    /// <param name="command"></param>
    /// <returns></returns>
    public SqliteDataReader ExecuteReader(string command)
    {
#if UNITY_EDITOR
        Debug.Log("SQL:ExecuteReader " + command);
#endif
        m_SqliteCommand.CommandText = command;
        m_SqliteDataReader = m_SqliteCommand.ExecuteReader();
        return m_SqliteDataReader;
    }
}

unity SqLite读取行和列,unity,sqlite,游戏引擎
unity SqLite读取行和列,unity,sqlite,游戏引擎文章来源地址https://www.toymoban.com/news/detail-800419.html

到了这里,关于unity SqLite读取行和列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qtablewidget隐藏行和列

    要隐藏Qtablewidget指定行和列,代码如下 // 隐藏列 ui-tableWidget-setColumnHidden(0, true); // 隐藏第1列 ui-tableWidget-setColumnHidden(1, true); // 隐藏第2列 // 隐藏行 ui-tableWidget-setRowHidden(0, true); // 隐藏第1行 ui-tableWidget-setRowHidden(1, true); // 隐藏第2行 // 显示列 ui-tableWidget-setColumnHidden(0, false); /

    2024年02月11日
    浏览(45)
  • Unity报错DllNotFoundException:sqlite3

    Unity项目中要使用轻型数据库sqlite,除了导入sqlite3.dll外,还需要导入Mono.Data.Sqlite.dll和System.Data.dll(工程里或者编辑器里面有System.Data.dll时就不需要)两个文件。  如果在编辑器中运行出现 “DllNotFoundException:sqlite3” 报错,绝大多数原因是因为系统中缺乏相关类库,或者类库

    2024年02月11日
    浏览(35)
  • 在MATLAB中插入行和列

    在MATLAB中插入行和列 在MATLAB中,我们经常需要在矩阵或数组中插入新的行或列。这可以通过使用不同的函数和操作来实现。下面我将为你提供几种常见的方法。 方法一:使用赋值操作符 最简单的方法是使用赋值操作符将新的行或列赋值给现有的矩阵或数组。下面是一个示例

    2024年02月05日
    浏览(41)
  • WPF grid控件定义行和列

    在此已经学习了wpf Grid控件, WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习; 定义3行3列的基本代码如下;为了看清效果,设置 ShowGridLines=\\\"True\\\";   减少一列,效果如下;   只有行,没有列;   指定第一列的宽度;   第一列指定宽度,剩下2列

    2024年02月13日
    浏览(51)
  • Python输出矩阵的维度(行和列数)

    目录 使用numpy中的shape()函数输出矩阵的行和列 一、shape()函数获取矩阵的行数和列数 二、len()函数获取矩阵的行数 三、使用x.ndim函数可以输出矩阵维数 示例代码:   输出结果: 示例代码: 输出结果: 该维数含义是指数据的独立维度空间数目 ,不是矩阵的行数也不是列数

    2024年02月11日
    浏览(41)
  • C语言,将矩阵行和列交换。

    先上答案: 外层for循环控制行数,内层for循环控制列数,输入时,要给数组相应元素赋值,共有n行m列,所以外层a n,内层i m。 打印的时候,数组元素其实并没有改变,只是元素的打印顺序发生了改变。 打印时,行数和列数进行了交换,所以外层变成了a m,内层变成了i n。 打

    2024年02月04日
    浏览(38)
  • Unity 制作登录功能02-创建和链接数据库(SQlite)

    在Unity开发游戏时使用SQLite有多种原因,以下是其中一些主要原因: 嵌入式数据库:SQLite是一个嵌入式数据库引擎,这意味着它不需要单独的服务器进程。这使得使用SQLite非常方便,并且可以轻松地在不同的平台和操作系统上使用。 易于使用:SQLite易于学习和使用,具有简洁

    2024年02月04日
    浏览(56)
  • 【vue】el-table实现动态添加行和列

    实现思路: 最近遇到一个动态增加行和列的需求,本来拿到需求的时候想用el-table中自带的方法去实现的,但是经过尝试发现不能满足想要实现的需求。没办法只能在el-table的基础上自己写原生。 大概思路如下: 1.首先把table中需要动态增加的行和列分开,分别定义一个数组

    2024年02月11日
    浏览(46)
  • EXCEL中点击单元格,所在行和列都改变颜色

    在日常工作中,尤其是办公室工作人群,尝尝需要处理大量的数据,在对数据进行修改时,时长发生看错行的事情,导致数据越改越乱,因此,我常用的一种方法就是选中单元格时,所在行、列标记为特殊颜色,下面就是我常用的标记方法,仅供参考,如大家还有其他方法,

    2024年02月10日
    浏览(46)
  • python 如何获取 excel 表格中数据所在的行和列

    比如有下面一张excel表,我们需要得到“张思德”所在的行和列

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包