设为首页 加入收藏

TOP

分享 Xamarin.android 关于使用SQLiteOpenHelper的小白经验(一)
2019-09-01 23:12:59 】 浏览:55
Tags:分享 Xamarin.android 关于 使用 SQLiteOpenHelper 小白 经验

关于使用SQLiteOpenHelper的使用,对于小白的我,百度啦相当多的大神的介绍,均未能让我这新手(零基础)成功学会,
参考了http://www.cnblogs.com/yaozhenfa/p/xamarin_android_sqliteopenhelper.html,
我成功实验出我的第一个登录注册程序
为使像我这样的小白能顺利开发,特分享我的经验;大神请指点不足,谢谢!
直接贴代码及步骤吧,原理我就不懂啦,
---------------------
作者:weixin_42671268
来源:CSDN
原文:https://blog.csdn.net/weixin_42671268/article/details/87871246
版权声明:本文为博主原创文章,转载请附上博文链接!

1 //创建数据库链接,需要创建一个包喊数据库sqliteopenhelper的类文件:LocalSQLiteOpenHelper.cs;

using System.Text;
using Android.Database;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Database.Sqlite;
namespace systemApp3
{
class LocalSQLiteOpenHelper : SQLiteOpenHelper//使用SQLiteOpenHelper,因为这个类会简化我们创建数据的步骤
{
public LocalSQLiteOpenHelper(Context context): base(context, “Littonb”, null, 1)//创建一个名为Lib的数据库
{
}

    public override void OnCreate(SQLiteDatabase db)//OnCreate方法仅会在数据库不存在的情况下才执行
    {
        db.ExecSQL("CREATE TABLE UserInfo(Id INTEGER PRIMARY KEY ,UserName TEXT NOT NULL,PassWord TEXT NOT NULL)");//生成一张UserInfo的表,(有3列:id,uname,upwd) (INTEGER PRIMARY KEY为主键的意思,)(NOT NULL不为空)
    }

    public override void OnUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)//OnUpgrade方法使数据库版本需要更新时进行操作
    {
        db.ExecSQL("DROP TABLE IF EXISTS UserInfo");//检查是否有UserInfo的表,有就删除,始终更新此表;
        OnCreate(db);
    }

}

}

  然后去操作数据库
即在activity.cs文件中操作,
2 //登录按钮事件

loginBtn.Click += (sender, e) =>
{ //登录按钮事件
string userName1 = userName.Text;
string passWord1 = passWord.Text;

            LocalSQLiteOpenHelper sqlHelper = new LocalSQLiteOpenHelper(this);
            //通过此段得到sqlHelper助手对象 

            SQLiteDatabase db1 = sqlHelper.WritableDatabase;
            // 得到数据对象db1,sqlHelper.WritableDatabase为开启插入,修改,删除,查询功能,sqlHelper.ReadableDatabase只读取,如查询,
            //查询UserInfo表里的条件是UserName and PassWord都相同,的一条数据:
            ICursor ic = db1.Query("UserInfo", new string[] {  "UserName", "PassWord" }, " UserName= ? ",new string[] {userName1 }, null, null, null);
            //db.Query("UserInfo", new String[] { "UserName", "PassWord" }, "UserName=?", new String[] { userName1, passWord1 }, null, null, null);
            //Query查询方法,将userName1, passWord1传入到dp1.;然后用游标ICursor 方法查到并保存到cursor的结果集里ic.,
            // 第一个参数String:表名 // 第二个参数String[]:要查询的列名// 第三个参数String:查询条件 // 第四个参数String[]:查询条件的参数 
            // 第五个参数String:对查询的结果进行分组// 第六个参数String:对分组的结果进行限制// 第七个参数String:对查询的结果进行排序

            if (ic.MoveToFirst())//检查ic.结果集里有没有数据,如有执行if的下一步操作;
            {
                ic.MoveToFirst();

                string uname1 = ic.GetString(ic.GetColumnIndex("UserName"));
                string upwd1 = ic.GetString(ic.GetColumnIndex("PassWord"));
                Intent Main = new Intent(this, typeof(MainActivity)); //实例化意图 Main,打开MainActivity.cs
                Main.PutExtra("userId", userName.Text);//将userId取userName的值,传送数值到MainActivity.cs上,
                StartActivity(Main);
                
            Toast.MakeText(this, uname1 + "  欢迎登陆!", ToastLength.Long).Show();

            
            }
            else
            {
                Toast.MakeText(this, "用户: " + userName.Text + " 或密码无效!", ToastLength.Long).Show();
            }

  3 //注册按钮事件

registerNewBtn.Click += (sender, e) =>
{ //注册按钮事件
//创建数据库链接,需要创建一个包喊数据库sqliteopenhelper的类文件:LocalSQLiteOp
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何自动生成测试用例方案 下一篇安卓开发笔记(十三):SQLite数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目