【发布时间】:2018-11-26 06:06:49
【问题描述】:
我正在尝试根据 Xamarin Android C# 中的参数返回数据。拉回所有数据时,下面的代码可以正常工作,但是我需要使用 SQLite WHERE 查询来返回特定数据。
我需要使用 AutoCompleteTextView 字段中的值作为参数..
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
//ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
SetContentView(Resource.Layout.Main);
db = new DBHelper(this);
sqliteDB = db.WritableDatabase;
container = FindViewById<LinearLayout>(Resource.Id.container);
var btnEmergencyServices = FindViewById<Button>(Resource.Id.btnEmergencyServices);
btnEmergencyServices.Click += btnEmergencyServices_onClick;
}
private void EmergencyServicesData()
{
ICursor selectData = sqliteDB.RawQuery("select POLICE, FIRE, MEDICAL from EmergencyServices WHERE COUNTRY = @Country", new string[] { });
if (selectData.Count > 0)
{
selectData.MoveToFirst();
do
{
EmergencyServices emergencyServices = new EmergencyServices();
emergencyServices.POLICE = selectData.GetString(selectData.GetColumnIndex("POLICE"));
emergencyServices.FIRE = selectData.GetString(selectData.GetColumnIndex("FIRE"));
emergencyServices.MEDICAL = selectData.GetString(selectData.GetColumnIndex("MEDICAL"));
EmergencyServices.Add(emergencyServices);
}
while (selectData.MoveToNext());
selectData.Close();
}
foreach (var item in EmergencyServices)
{
LayoutInflater layoutInflater = (LayoutInflater)BaseContext.GetSystemService(Context.LayoutInflaterService);
View addView = layoutInflater.Inflate(Resource.Layout.EmergencyServices, null);
TextView txtPolice = addView.FindViewById<TextView>(Resource.Id.txtPolice);
TextView txtFire = addView.FindViewById<TextView>(Resource.Id.txtFire);
TextView txtMedical = addView.FindViewById<TextView>(Resource.Id.txtMedical);
txtPolice.Text = item.POLICE;
txtFire.Text = item.FIRE;
txtMedical.Text = item.MEDICAL;
container.AddView(addView);
}
}
【问题讨论】:
-
您的实际问题是什么?
-
如何在查询中使用参数?
-
如果是这种情况,我真的无法判断,但如果您在任何地方使用 SqliteCommand,请使用 Parameters 集合属性。 DBHelper 到底是什么