SQLite net with linq on Windows Phone 8.1
本文关键字:Phone Windows on net with linq SQLite | 更新日期: 2023-09-27 18:07:35
假设我有下表:
public class User
{
public User()
{
}
public User(string name, string pass)
{
addUser(name, pass);
}
public void addUser(string name, string pass)
{
//todo cryptography
this.login = name;
this.password = pass;
}
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
[Unique, MaxLength(20)]
public string login { get; set; }
[MaxLength(20)]
private string password { get; set; }
public string group { get; set; }
}
- 我在登录字段中有唯一的关键字。如果我添加另一个具有相同登录名的人,会引发异常还是会跳过此插入命令
从user表中获取用户名的最佳方法是什么?为了根据某些名称条件获取所有用户,我使用此示例函数进行测试。
public async void GetRow(string name) { var query = dbConnection.Table<User>().Where(x => x.login.Contains(name)); var result = await query.ToListAsync(); foreach (var item in result) { User u = item as User; MessageDialog msgbox = new MessageDialog(u.login); await msgbox.ShowAsync(); } }
假设我只想根据给定的名称从Users表中获得一条记录,那么最好的方法是什么。我试过这样的东西:
from u in dbConection.Table<User> select u.Login where u.Login = name;
- 如何从GetRow函数返回2个问题中描述的用户密码?我只能收到项目列表,我在网上搜索,我找到了FirstOrDefault功能,但有更好的方法吗
编辑:
广告1。抛出异常
ad 2.只有当表中存在记录时,这才有效,在其他情况下抛出异常
var query = (from s in dbConnection.Table<User>() where s.login == name && s.password == password select s).FirstAsync();
User qr = query.Result;
我找到了解决方案。这是一个简单的验证函数。谢谢你的帮助。
try
{
var query = (from s in dbConnection.Table<User>() where s.login == name && s.password == password select s).FirstAsync();
User x = await query;
if (x != null) return true;
else return false;
}
catch (Exception)
{
return false;
}
var some_strings = new List<string> {"Szcz","epan"};
string first_string = some_strings.FirstOrDefault();
//first_string = "szcz";
some_strings = new List<string>();
first_string = some_strings.FirstOrDefault();
//first_string = null;
if (first_string != null)
// do your stuff here.
如果您处理的是Int
的,那么默认值将为零。如果它是一个自定义类,那么它将是该类的默认值。