数据库实现读写 Day0904

2017-09-04  本文已影响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);    }

上一篇下一篇

猜你喜欢

热点阅读