请帮忙。我正在尝试学习 xamarin c-sharp。为此,我学到了足够多的基础知识,让我有信心尝试制作一个简单的 SQLite Db 应用程序。
我正在使用 sqlite-net-pcl。我试过 Xamarin.Android 和 Xamarin.Forms。我已经在两台不同的 win10 计算机上运行了该应用程序。我已经在模拟器和手机上运行了该应用程序。所有的结果都是一样的。. . 所有返回的数据都是 0 或 null。
我有一个现有的非空数据库(textdb.db):
我在网上搜索过,发现一些人抱怨相同的结果,但我找不到解决方案。
我希望有人在那里看到一些东西并告诉我出了什么问题。
结构:表:testtable ................... id,INT,主键数据,BIGINT
数据 id = 1 数据 = 2 ....................
我的代码:
using System;
using Android.App;
using Android.OS;
using Android.Runtime;
using Android.Views;
using AndroidX.AppCompat.Widget;
using AndroidX.AppCompat.App;
using Google.Android.Material.FloatingActionButton;
using Google.Android.Material.Snackbar;
using Android.Widget;
using System.IO;
using SQLite;
using System.Linq;
namespace android_db_app
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme.NoActionBar", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
. . .
}
public override bool OnCreateOptionsMenu(IMenu menu)
{
. . .
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
. . .
}
private void FabOnClick(object sender, EventArgs eventArgs)
{
. . .
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
. . .
}
public void Exit_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
public void Connect_Click(object sender, EventArgs e)
{
object o,o1;
string dbname = "test.db";
string s = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.Path, @"DailyReminder/DB/" + dbname);
if (!File.Exists(s))
s = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.Path, dbname);
SQLiteAsyncConnection dbConnection = new SQLiteAsyncConnection(s);//SQLiteConnection.Table
string sql = "SELECT * FROM testtable;";
string sql1 = "SELECT ID FROM testtable;";
o = dbConnection.Table<testtable>();
o1 = dbConnection.QueryAsync<int>(sql1,0);
}
}
public class testtable
{
public Int32 id;
public Int64 data;
}
}
对象中的所有结果都是值 0 而不是 1 和 2。