数据库实现读写 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); }