美文网首页
数据库实现读写 Day0904

数据库实现读写 Day0904

作者: 段然丶 | 来源:发表于2017-09-04 09:49 被阅读0次

    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);    }

    相关文章

      网友评论

          本文标题:数据库实现读写 Day0904

          本文链接:https://www.haomeiwen.com/subject/yibsjxtx.html