【发布时间】:2019-10-30 12:55:54
【问题描述】:
我在从 Android 设备版本 7.0 上的本地数据库中选择时遇到一个问题。
当我选择时,它返回System.Collections.Generic.List`1[Projectname.Database]
真的不知道问题出在哪里,我只需要在它的字符串中获取值。感谢任何人的帮助。代码:
barcode.TextChanged += delegate
{
string bcode = ((EditText)barcode).Text.ToString();
if(bcode != "")
{
string kod = bcode.Substring(bcode.IndexOf("Data:") + 5);
try
{
Console.WriteLine("**COUNT = " + db.Query<Prijem>("SELECT Count FROM Prijem WHERE BCode = ?", kod));
}
catch (Exception e)
{
Console.WriteLine(e);
}
db.Query<Prijem>("INSERT INTO Prijem(BCode,Name,FirmName,ItemCode,Count) values(" + kod + ", 'Test11', 'FirmText', 'XDD286', '2')");
((EditText)barcode).Text = "";
dataGrid.View.Refresh();
}
};
数据库启动器:
public class Prijem
{
[PrimaryKey, AutoIncrement]
public string BCode { get; set; }
public string Name { get; set; }
public string FirmName { get; set; }
public string ItemCode { get; set; }
public string Count { get; set; }
}
public class GridDB
{
static object locker = new object();
SQLiteConnection db;
public GridDB()
{
var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "ISQLite.db");
db = new SQLiteConnection(dbPath);
db.CreateTable<Prijem>();
}
public IEnumerable<Prijem> GetItems()
{
lock (locker)
{
var table = (from i in db.Table<Prijem>() select i);
return table;
}
}
}
【问题讨论】:
-
选择总是会返回一组行。如果您只想要一个结果,您可以使用集合中的第一个结果
-
但是怎么做呢?当我使用 FirstOrDefault() 它返回 Projectname.Database
-
尝试使用
Query<int> -
如果我更改 WHERE 参数或选择参数,也总是打印 0
-
您确定您的查询语法正确吗?