数据库实现读写 Day0904

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using Mono.Data.Sqlite;

using System.IO;

using UnityEngine.SceneManagement;

using UnityEngine.UI;

public class MenuUI : MonoBehaviour

{

public Button BtnRegist;        // 注册按钮

public Button BtnLogin;        // 登录按钮

public InputField UserRegist;  // 玩家注册输入的用户名

public InputField PWRegist;    // 玩家注册输入的密码

public InputField UserLogin;    // 玩家登录输入的用户名

public InputField PWLogin;      // 玩家登录输入的密码

public Text TextTips;          // 提示信息

private string path;            // 数据库连接的路径

private SqliteConnection con;  // 数据库连接

private SqliteCommand cmd;      // 数据库命令

private object obj;

private int id;

初始化操作

/// 1.连接数据库,打开数据库

/// 2.分平台去进行,因为每个平台的路径是不一样的

void Start()  

{

//// 定义一个数据持久化数据,如果没有id这个键的时候创建改键并赋值为1000,如果有id这个键的时候得到它真实的值

  id=PlayerPrefs.GetInt("id",1000);

#if UNITY_EDITOR

 path="Data Source="+Application.streamingAssetsPath+"/usermanaget.sqlite";

#elif UNITY_ANDROID

string localPath = "jar:file://" + Application.dataPath + "!/assets/" + "usermanager.sqlite";

string newPath = Application.persistentDataPath + "/usermanager.sqlite";

if (!File.Exists(newPath))

{

WWW www = new WWW(localPath);

while(!www.isDone){}

// 在手机沙盒当中创建新的文件

File.WriteAllBytes(newPath, www.bytes);

}

path = "URI = file:" + newPath;

#endif

//初始化数据库连接对象

 con=new SQliteConnection(path);

//打开数据库

con.Open();

//实例化数据库指令

cmd=con.CreateCommand();

 

}

//注册

void ClickRegist()

{

cmd.CommandText="select name from user where name=' "+UserRegist.text+" ' ";

obj=cmd.ExecuteScalar();//返回查找的第一个数据

if (obj != null)

{// 证明数据库当中有玩家注册时输入的用户名,所以不能够注册

ToTips("用户名已占用");

}

else

{

            if (PWRegist.text == "")

              {

               ToTips("密码不能为空");

                   }

                   else

       {

             ++id;

                //更新数据持久化的id值

PlayerPrefs.SetInt("id",id);

cmd.CommandText="insert into user values("+id.Tostring()+",'"++ UserRegist.text + "','" + PWRegist.text + "')";

          }

}

/// 登录    ///    void ClickLogin()    {        // 注入指令        cmd.CommandText = "select password from user where name = '" + UserLogin.text + "'";        obj = cmd.ExecuteScalar();        if (obj == null)        {// 代表没有找到输入的用户名            ToTips("用户名错误");        }        else if (obj.ToString() != PWLogin.text)        {// 代表输入的密码跟数据库中的密码不一致            ToTips("密码错误");        }        else        {            ToTips("登录成功");            cmd.CommandText = "select id from user where name = '" + UserLogin.text + "'";            obj = cmd.ExecuteScalar();            int idid = System.Convert.ToInt32(obj);            PlayerData.ID = idid;            PlayerData.UserName = UserLogin.text;            SceneManager.LoadScene("222");        }    }    ////// 提示

//////提示的信息    void ToTips(string tips)    {        TextTips.text = tips;    }    ////// 给按钮注册事件

///private void OnEnable()    {        BtnRegist.onClick.AddListener(ClickRegist);        BtnLogin.onClick.AddListener(ClickLogin);    }    ////// 注销事件

///private void OnDisable()    {        BtnRegist.onClick.RemoveListener(ClickRegist);        BtnLogin.onClick.RemoveListener(ClickLogin);    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,067评论 18 399
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,879评论 0 9
  • 又是崭新的一天,升国旗,奏国歌…… 今天终于有块石头落地了,王嘉琪不用去托辅了,这学期我接送行了。不想她每天因为去...
    琪子妈阅读 1,652评论 0 4
  • 最近开始学习前端,看了网上许多相关的文章,老师和已工作的朋友也都证实,“在浏览器中输入URL到整个页面显示在用户面...
    远山黛子阅读 1,855评论 0 0

友情链接更多精彩内容