C#怎么查询多个数据是否在c 查询数据库返回数据中

当前位置: >
& c#从数据库中获取时间 C#中如何得到出查询数据库的交互时间?
c#从数据库中获取时间 C#中如何得到出查询数据库的交互时间?
收集整理:/ 时间:
C#中如何得到出查询数据库的交互时间?应用Stopwatch 类,代码示例如下:using S using System.D namespace StopWatchClass { class Program { static void Main(string[] args) { Stopwatch timer = new Stopwatch(); long total = 0; timer.Start(); for (int i = 1; i &= ; i++) { total += } timer.Stop(); } } }
执行语句前,记录时间执行后,记录时间,时间相减。就可以得到了
Stopwatch。c#中取得数据库中的时间后怎样按规定格式输出写入数据库:添加系统默认时间,在sql语句里写 时间字段=getdate()读出数据时间:info.Time.ToString()必须是时间字符串DateTime.Parse(info.Time.ToString()).ToString("yyyy-MM-dd HH:mm")
DateTime.Now.ToString("yyyy-MM-dd HH:mm") ;//24小时制DateTime.Now.ToString("yyyy-MM-dd hh:mm") ;//12小时制
DateTime MyDateTime = DateTime.now();string StrDT = MyDateTime.toString("yyyy-MM-dd HH:mm");PS:建议先用UTC时间,然后。
info.Time.toLongDateString();info.Time.toShortDateString();
label1.Text=info.Time.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo);。C#中读取数据库时间出现异常 用的什么数据库?一般的SQL语法应该是select distinct convert(varchar(7),sw_date,120) from tb_show
select convert(varchar(7),sw_date,120) from tb_show group by convert(varchar(7),sw_date,120)。c#中怎么取得数据库中的时间..代码怎么写绑定到界面上oracle 取数据库时间:select sysdate from dual 通常格式 15:34:40只取日期:select to_char(sysdate,yyyy-mm-dd) from dual只取时间:select to_char(sysdate,hh24:mi:ss) from dualsqlserver取数据库时间:SELECT GETDATE() AS datatime只取日期:SELECT CONVERT(varchar(10), GETDATE(), 121) AS date只取时间:SELECT CONVERT(varchar(8), GETDATE(), 108) AS time执行sql之后,可以使用datatable或者dataset存储数据例如:string sql = “上面的sql语句”;Dtatable dt = sqlhelper.getDataTable(sql);//sqlhelper是类,getdatatable是方法;自己根据代码灵活处理;string myTime = dt.Rows[0][0].ToString(); //取0行0列的值。
可以绑定系统时间 ,比如用lable控件:lable1.text = datetime.date.tostring()大概就是这样的
是从数据库表单中取时间数据?从数据库中查询出需要的时间数据,比如select time from table where。然后读取出来赋给一变量str(string。
你看这个窗体控件显示的数据是什么类型的,如果是string的就datetime.ToString() 就好了,如果是datetime类型的直接赋值就可以了
那要看你到底要绑定到什么控件上和怎么展示了请把问题补充详细
怎么绑定数据就怎么绑定时间如果觉得回答不满意就请你把问题说清楚详细一点!
时间就是一个字符串么..跟其他的绑定没有区别的啊.只要把数据源给控件就成了.控件会自动识别的.
sysdate(Oracle),getdate(sql2005),直接写到sql语句
从数据库表中取时间类型的字段吧。
SELECT CONVERT(varchar(8), GETDATE(), 108) AS time。C#中获取系统时间以后插入到数据库中,但是数据库中的时。 把数据库中该字段类型改成datetime 你改程datetime类型,之前插入的数据格式当然是不变的。 什么啊。这个问题还这么纠结,你直接吧数据库该字段设置默认的getdate(). 字段属性就是datetime. 什么 string date=DateTime.Now.ToShortDateString(); 直接 Datetime date=DateTime.N既然你数据库是datetime类型,为什么插入的时候要转成string类型,不懂你。、。C#中从数据库读取两个时间数据并保存在变量里,现在要这。你的time2很明显是string类型,如何相减? Convert.ToDateTime(time2).Subtract(Convert.ToDateTime(time1));。C#窗体数据绑定控件 如何获取数据库中的时间 完成查询 - 已。 select getdate() 。数据库的时间不是这么简单吧?
SQL语句:select getdate()。C# asp.net获取数据库中的时间类型数据的月份DateTime.Now.Month 月份DateTime.Now.Year 年DateTime.Now.Day 日 update table set time= 00:00:00 where id=1
DateTime.Now.Month 月份DateTime.Now.Year 年DateTime.Now.Day 日
SELECT year(birthday) as yyyy FROM TAccess的不太喜欢搞!
&%# ((DateTime)DataBinder.Eval(Container.Dataem,"shijian")).ToString("MM-dd") 这样不就可以了。把年都去掉了。C# 从数据库中读取得到数据,想把它添加到listview控件时。很有可能是你的数据源为空(null)。也就是说你没有把数据读出来。这个过程的错误出现在你的数据库操作中你跟踪捕获一下异常,在进行相应的改动。。
需要代码 未引用到对象的实例 一般是因为你在使用这个对象时 没有初始化
你把你的代码粘出来看看
发下你绑定到listview时的代码看下吧!
能贴出代码不?C#中读取数据库时间出现异常用的什么数据库?一般的SQL语法应该是select distinct convert(varchar(7),sw_date,120) from tb_show可能因为没列名,或者是数据类型。convert()后面加 as col_name试试,然后再留意下null值什么的。把VS的异常信息贴出来看看。
select distinct(ddate) from(select convert(varchar(7),sw_date,120) as ddate from tb_show)
c#从数据库中获取时间相关站点推荐:
赞助商链接
c#从数据库中获取时间相关
免责声明: 机电供求信息网部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递 更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您想举报或者对本文章有异议,请联系我们的工作人员。程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之使用C#语言建立本地数据库(二十三)
Unity3D研究院之使用C#语言建立本地数据库(二十三)
围观43044次
编辑日期: 字体:
原文:/threads/28500-SQLite-Class-Easier-Database-Stuff
原始文章主要是使用JavaScript语言建立本地数据库
以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互。本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔~~~
首先你需要得到Mono.Data.Sqlite.dll 文件 与System.Data.dll文件。如果你在Mac 操作系统下使用Unity那么很悲剧,找不到这两个文件,至少我没能找到。后来我在Windows下的Unity安装路径中找到了它。为了方便大家我将这两个文件上传至网盘中,如果没有这两个文件的朋友请下载。
下载地址:
.zip文件下载完毕后直接解压,然后将Mono.Data.Sqlite.dll 文件 与System.Data.dll文件放在Unity工程中的Assets文件夹中。如下图所示,两个文件已经放置在Project视图当中。
Ok ,我们编写C#脚本,原始文章没有Unity数据库更新与删除的方法,我在这里加上更新与删除的方法,方便大家开发时使用。因为其实Unity中更新与删除数据库也是个比较重要的功能。
注意:下面脚本不要绑定在任何游戏对象身上,大家无需把它当作脚本可以当作一个工具类来使用。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
using UnityEngine;&using System;using System.Collections;using Mono.Data.Sqlite;&public class DbAccess&{&&&&&private SqliteConnection dbConnection;&&&&&private SqliteCommand dbCommand;&&&&&private SqliteDataReader reader;&&&&&public DbAccess (string connectionString)&&&&&{&&&&&&&&&OpenDB (connectionString);&&&&&}&&&&public DbAccess () {& }&&&&&public void OpenDB (string connectionString)&&&&&{
{&&&&&&&& dbConnection = new SqliteConnection (connectionString);&&&&&&&
dbConnection.Open ();&&&&&&&
Debug.Log ("Connected to db");
}&&&& catch(Exception e)&&&& {&&&&&&
string temp1 = e.ToString();&&&&&&
Debug.Log(temp1);&&&& }&&&&&}&&&&&public void CloseSqlConnection ()&&&&&{&&&&&&&&&if (dbCommand != null) {&&&&&&&&&&&&&dbCommand.Dispose ();&&&&&&&&&}&&&&&&&&&dbCommand = null;&&&&&&&&&if (reader != null) {&&&&&&&&&&&&&reader.Dispose ();&&&&&&&&&}&&&&&&&&&reader = null;&&&&&&&&&if (dbConnection != null) {&&&&&&&&&&&&&dbConnection.Close ();&&&&&&&&&}&&&&&&&&&dbConnection = null;&&&&&&&&&Debug.Log ("Disconnected from db.");&&&&&}&&&&&public SqliteDataReader ExecuteQuery (string sqlQuery)&&&&&{&&&&&&&&&dbCommand = dbConnection.CreateCommand ();&&&&&&&&&dbCommand.CommandText = sqlQuery;&&&&&&&&&reader = dbCommand.ExecuteReader ();&&&&&&&&&return reader;&&&&&}&&&&&public SqliteDataReader ReadFullTable (string tableName)&&&&&{&&&&&&&&&string query = "SELECT * FROM " + tableName;&&&&&&&&&return ExecuteQuery (query);&&&&&}&&&&&public SqliteDataReader InsertInto (string tableName, string[] values)&&&&&{&&&&&&&&&string query = "INSERT INTO " + tableName + " VALUES (" + values[0];&&&&&&&&&for (int i = 1; i & values.Length; ++i) {&&&&&&&&&&&&&query += ", " + values[i];&&&&&&&&&}&&&&&&&&&query += ")";&&&&&&&&&return ExecuteQuery (query);&&&&&}& public SqliteDataReader UpdateInto (string tableName, string []cols,string []colsvalues,string selectkey,string selectvalue) {&
string query = "UPDATE "+tableName+" SET "+cols[0]+" = "+colsvalues[0];&
for (int i = 1; i & colsvalues.Length; ++i) {&
query += ", " +cols[i]+" ="+ colsvalues[i];
query += " WHERE "+selectkey+" = "+selectvalue+" ";&
return ExecuteQuery (query); }& public SqliteDataReader Delete(string tableName,string []cols,string []colsvalues) {
string query = "DELETE FROM "+tableName + " WHERE " +cols[0] +" = " + colsvalues[0];&
for (int i = 1; i & colsvalues.Length; ++i) {&
&&&&query += " or " +cols[i]+" = "+ colsvalues[i];
Debug.Log(query);
return ExecuteQuery (query); }&&&&&public SqliteDataReader InsertIntoSpecific (string tableName, string[] cols, string[] values)&&&&&{&&&&&&&&&if (cols.Length != values.Length) {&&&&&&&&&&&&&throw new SqliteException ("columns.Length != values.Length");&&&&&&&&&}&&&&&&&&&string query = "INSERT INTO " + tableName + "(" + cols[0];&&&&&&&&&for (int i = 1; i & cols.Length; ++i) {&&&&&&&&&&&&&query += ", " + cols[i];&&&&&&&&&}&&&&&&&&&query += ") VALUES (" + values[0];&&&&&&&&&for (int i = 1; i & values.Length; ++i) {&&&&&&&&&&&&&query += ", " + values[i];&&&&&&&&&}&&&&&&&&&query += ")";&&&&&&&&&return ExecuteQuery (query);&&&&&}&&&&&public SqliteDataReader DeleteContents (string tableName)&&&&&{&&&&&&&&&string query = "DELETE FROM " + tableName;&&&&&&&&&return ExecuteQuery (query);&&&&&}&&&&&public SqliteDataReader CreateTable (string name, string[] col, string[] colType)&&&&&{&&&&&&&&&if (col.Length != colType.Length) {&&&&&&&&&&&&&throw new SqliteException ("columns.Length != colType.Length");&&&&&&&&&}&&&&&&&&&string query = "CREATE TABLE " + name + " (" + col[0] + " " + colType[0];&&&&&&&&&for (int i = 1; i & col.Length; ++i) {&&&&&&&&&&&&&query += ", " + col[i] + " " + colType[i];&&&&&&&&&}&&&&&&&&&query += ")";&&&&&&&&&return ExecuteQuery (query);&&&&&}&&&&&public SqliteDataReader SelectWhere (string tableName, string[] items, string[] col, string[] operation, string[] values)&&&&&{&&&&&&&&&if (col.Length != operation.Length ?? operation.Length != values.Length) {&&&&&&&&&&&&&throw new SqliteException ("col.Length != operation.Length != values.Length");&&&&&&&&&}&&&&&&&&&string query = "SELECT " + items[0];&&&&&&&&&for (int i = 1; i & items.Length; ++i) {&&&&&&&&&&&&&query += ", " + items[i];&&&&&&&&&}&&&&&&&&&query += " FROM " + tableName + " WHERE " + col[0] + operation[0] + "'" + values[0] + "' ";&&&&&&&&&for (int i = 1; i & col.Length; ++i) {&&&&&&&&&&&&&query += " AND " + col[i] + operation[i] + "'" + values[0] + "' ";&&&&&&&&&}&&&&&&&&&return ExecuteQuery (query);&&&&&}&}
首先是创建本地数据库,我们创建C#脚本Test.cs直接绑定在摄像机中。
12345678910111213141516171819
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour{& void Start () {& &&&&//创建数据库名称为xuanyusong.db
DbAccess db = new DbAccess("data source=xuanyusong.db");&
//创建数据库表,与字段
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});&&&&&&&&//关闭对象
db.CloseSqlConnection(); }&}
运行游戏后,数据库对象会自动生成在项目的根目录中。查看数据库的软件我使用的是Navicat Premium,如果没有请大家下载,然后继续。如下图所示,数据库文件xuanyusong.db已经生成在项目的根目录中,接着我使用Navicat Premium软件将这个数据库打开。数据库的表名为momo 打开表后字段包含name、
blog。都是我们在代码中创建的。
(点击查看大图)
OK,我们继续。首先是插入数据,记得将编码修改成UTF-16 不然中文会乱码。
1234567891011121314151617
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour{& void Start () {& &&&&//创建数据库名称为xuanyusong.db
DbAccess db = new DbAccess("data source=xuanyusong.db");
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.CloseSqlConnection(); }&}
接着是更新数据。UpdateInto是我新写的方法,接受更新多条数据。
123456789101112131415161718
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour{& void Start () {& &&&&//创建数据库名称为xuanyusong.db
DbAccess db = new DbAccess("data source=xuanyusong.db");&
db.UpdateInto("momo",new string[]{"name","qq"},new string[]{"'xuanyusong'","''"}, "email", "''"&&);&
db.CloseSqlConnection(); }&}
然后是删除数据DELETE也是我封装的方法。
12345678910111213141516171819202122232425
using UnityEngine;using System.Collections;&public class Test : MonoBehaviour{& void Start () {& &&&&//创建数据库名称为xuanyusong.db
DbAccess db = new DbAccess("data source=xuanyusong.db");
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
db.CloseSqlConnection(); }&}
最后是查找数据。
12345678910111213141516171819202122232425262728293031323334
using UnityEngine;using System.Collections;&using Mono.Data.Sqlite;public class Test : MonoBehaviour{& void Start () {& &&&&//创建数据库名称为xuanyusong.db
DbAccess db = new DbAccess("data source=xuanyusong.db");
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
SqliteDataReader sqReader = db.SelectWhere("momo",new string[]{"name","email"},new string[]{"qq"},new string[]{"="},new string[]{""});&
while (sqReader.Read())&&&& {&&&&
Debug.Log(sqReader.GetString(sqReader.GetOrdinal("name")) + sqReader.GetString(sqReader.GetOrdinal("email")));&&&& } &
db.CloseSqlConnection(); }&}
注解1:这里的结构非常像安卓的数据库指针,然后while循环把每一条数据都取出来。 sqReader.Gerordinal()方法就是拿到对应列名称的数据。如下图所示,经过一些列的添加与删除的操作最后数据库的内容如下。
如下图所示,我使用Log也将数据库name 与 email的字段打印了出来。最后我在强调一点,我们在OnStart方法中db.CreateTable创建数据库表,如果重复创建系统会抛出错误。避免这个情况请保证你的数据库表只会被创建一次。祝大家学习愉快嘎嘎嘎~~~
留言中看到有朋友说报错,那么MOMO将我的工程打包,提供下在地址
Unity 使用SQLite本地数据库的下载地址如下:
如下图所示,请先在PlaySettings中修改Api Compatibility Level 改成.NET 2.0,如果不修改会报错
注意:Error building Player: Extracting referenced dlls failed.
无论你编译任何平台都请修改一下这里, 留言中有朋友在编译PC平台中 因为没有修改这里导致无法编译成功。。
IOS平台SQLite的使用:
然后需要修改Test.cs的脚本,在修改一下数据库保存的路径,我们将数据库放在沙盒当中。这样IOS中才可以读取数据库。
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using UnityEngine;using System.Collections;&using Mono.Data.Sqlite;public class Test : MonoBehaviour{& void Start () {
//数据库文件储存地址
string appDBPath = Application.persistentDataPath + "/xuanyusong.db";&
DbAccess db = new DbAccess(@"Data Source=" + appDBPath);&
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
using (SqliteDataReader sqReader = db.SelectWhere("momo",new string[]{"name","email"},new string[]{"qq"},new string[]{"="},new string[]{""}))
while (sqReader.Read())&&&&
//目前中文无法显示&&&&
Debug.Log(sqReader.GetString(sqReader.GetOrdinal("name")));&
Debug.Log(sqReader.GetString(sqReader.GetOrdinal("email")));&&&&&
sqReader.Close();
db.CloseSqlConnection(); }&}
下面开始打包成IOS版本,直接运行如下图所示,已经在XCODE的控制台中将字符串信息打印出来。目前我不知道如何读取中文,但是可以确定的是中文信息已经写入数据库中。不信大家可以打开沙盒看看。
Android平台SQLite的使用:
Android与IOS在使用SQLite数据库时有点区别,Android需要将第三方DLL放在Plugins当中。脚本也需要修改一下,先看看Test.cs的改动。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
using UnityEngine;using System.Collections;&using Mono.Data.Sqlite;public class Test : MonoBehaviour{& void Start () {
//数据库文件储存地址&
string appDBPath = Application.persistentDataPath&&+ "/xuanyusong.db";&
//注意!!!!!!!这行代码的改动
DbAccess db = new DbAccess("URI=file:" + appDBPath);&
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
using (SqliteDataReader sqReader = db.SelectWhere("momo",new string[]{"name","email"},new string[]{"qq"},new string[]{"="},new string[]{""}))
while (sqReader.Read())&&&&
Debug.Log("xuanyusong" + sqReader.GetString(sqReader.GetOrdinal("name")));&
Debug.Log("xuanyusong" + sqReader.GetString(sqReader.GetOrdinal("email")));&&&&&
sqReader.Close();
db.CloseSqlConnection(); }& void Update() {
if (Input.GetKeyDown(KeyCode.Escape) ??Input.GetKeyDown(KeyCode.Home) )&&&&&&&&{&&&&&&&&&&&&&Application.Quit();&&&&&&&&} }&}
如下图所示,Player Settings 请和我保持一致。
值得庆幸的是在Android下读取数据库时正常的显示了中文。如下图所示,运行打包后的程序后在Eclipse的后台已经能看到数据库显示的中文与英文,呵呵。
由于工程中需要一些DLL,所以我将工程的下载地址放出,请大家下载。
MAC平台下的使用:
请先下载原始版本
我们只需在原始版本之上进行修改即可。
修改Test.cs文件
,请注意我在代码中标注的内容。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
using UnityEngine;using System.Collections;&using Mono.Data.Sqlite;public class Test : MonoBehaviour{& string name = null; string email = null; string appDBPath = null; void Start () {&//////////--------
//请注意!!!!!!!
//这里的修改&
appDBPath = Application.dataPath + "/xuanyusong.db";&&&&&&&&&DbAccess db = new DbAccess(@"Data Source=" + appDBPath);&//////////--------&
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
SqliteDataReader sqReader = db.SelectWhere("momo",new string[]{"name","email"},new string[]{"qq"},new string[]{"="},new string[]{""});&
while (sqReader.Read())&&&& { &&&&&
Debug.Log(sqReader.GetString(sqReader.GetOrdinal("name")) + sqReader.GetString(sqReader.GetOrdinal("email"))); &
name = sqReader.GetString(sqReader.GetOrdinal("name"));
email = sqReader.GetString(sqReader.GetOrdinal("email"));&&&& } &
db.CloseSqlConnection(); }& void OnGUI() {&
///为了让大家看的更清楚 我将数据库取出的内容显示在屏幕中
if(name != null)
GUILayout.Label("XXXXXXXXXXXXX" + name);&
if (email!= null)
GUILayout.Label("XXXXXXXXXXXXX" + email);
if(appDBPath != null)
GUILayout.Label("数据库的路径" + appDBPath);
生成工程后,运行生成的mac程序,我们可以看到 数据已经取出来了。
Windows平台SQLite的使用:
Windows平台下与Mac平台有点区别,废了老半天来找到问题所在。MOMO感谢在博客后面留言的朋友,因为没有你们的留言我也不会去研究MAC
Windows下如何使用 呵呵。
进入正题,还是先修改Test.cs文件
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
using System.Collections;&using Mono.Data.Sqlite;&//using Mono.Data.SqliteC&public class Test : MonoBehaviour{& string&&name = null; string&&email = null; string path = null;& void Start () {
//数据库文件储存地址& //注意这里的修改!!!!!!!!!!!!!!
string appDBPath = Application.dataPath&&+ "/xuanyusong.db";& //--------------------------&
DbAccess db = new DbAccess(@"Data Source=" + appDBPath);&
path = appDBPath;&
//请注意 插入字符串是 已经要加上'宣雨松' 不然会报错
db.CreateTable("momo",new string[]{"name","qq","email","blog"}, new string[]{"text","text","text","text"});
//我在数据库中连续插入三条数据
db.InsertInto("momo", new string[]{ "'宣雨松'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'雨松MOMO'","''","''","''"&& });
db.InsertInto("momo", new string[]{ "'哇咔咔'","''","''","''"&& });&
//然后在删掉两条数据
db.Delete("momo",new string[]{"email","email"}, new string[]{"''","''"}&&);&
using (SqliteDataReader sqReader = db.SelectWhere("momo",new string[]{"name","email"},new string[]{"qq"},new string[]{"="},new string[]{""}))
while (sqReader.Read())&&&&
//目前中文无法显示&&&&
Debug.Log("xuanyusong" + sqReader.GetString(sqReader.GetOrdinal("name")));&
Debug.Log("xuanyusong" + sqReader.GetString(sqReader.GetOrdinal("email")));&
name = sqReader.GetString(sqReader.GetOrdinal("name"));
email = sqReader.GetString(sqReader.GetOrdinal("email"));&&&&&
sqReader.Close();
db.CloseSqlConnection(); }& void OnGUI() {
if(name != null)
GUILayout.Label(name);
if(email != null)
GUILayout.Label(email);
if(path != null)
GUILayout.Label(path);
如下图所示打开Unity然后我们需要下载sqlite3.dll文件,接着将dll都放入Plugins文件夹中。不用担心 稍后我会把真个工程的下载地址贴出来其中包括所有的dll 。
最后直接打包成Windows平台工程。双击运行.exe文件,如下图所示数据库的数据以及路径MOMO已经打印在屏幕当中啦。哇咔咔~ 然后xuanyusong.db文件就放在ddd_Date文件夹中,我已经用红圈标注出来了。ddd就是工程的名称,ddd_Date该文件夹是自动生成的。
(点击图片查看大图)
最后这个工程的下载地址,包括所有DLL以及代码MOMO感谢大家的支持。
下载地址:
最后祝大家学习愉快。
我发现留言中有很多朋友都问我
: SqliteException: SQLite errornear “″: syntax error 这样的错误。
这几天我抽时间看一下这个问题,出现这个问题应该是你需要在程序中载入第三方数据库,而不是自己创建数据库。
解决这个问题的办法其实很简单,当你程序发布以后。 windows下会生成 xx.exe 和 xx_Data文件夹,这时候你把你的第三方数据库拷贝进去就可以,因为我发现编辑模式下assets文件夹中的db文件打包生成windows的以后,这db文件不会完整的拷贝,在xx_Data文件夹中的db文件变成了0KB 。
在MAC OS 中也一样,unity也不会完整的拷贝。只需把数据库拷贝至 对应的路径下就可以。
如果你是在使用移动平台,可以参考
本文固定链接:
转载请注明:
MOMO与MO嫂提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!

我要回帖

更多关于 c 查询mysql数据库 的文章

 

随机推荐