根据第一列的值查询 ADO.NET sql 数据库的行(C#,Xamarin)
Querying the row of an ADO.NET sql database given the value of its first column (C#, Xamarin)
我的 C# 技能非常有限。我的代码背景是 MATLAB、FORTRAN,最近,Python。我在 visual studio 中使用 Xamarin 到 bootstrap 一个智能设备应用程序,以便在内部进行快速演示。
在此应用程序的其他地方,我使用 ADO.NET 创建了一个 SQLite 数据库,并使用用户 select 来自选择器、微调器和文本输入的条目填充它。每行是那个人的 'profile'。
现在,应用程序的另一部分采用第一列(配置文件名称)并填充一个微调器,这样用户就可以 select 自己:
//Check if database exists and get rider names for selection
bool exists = File.Exists(pathToDatabase);
string nameString = string.Empty;
if (exists)
{
Console.WriteLine("Reading database");
var connection = new SqliteConnection("Data Source=" + pathToDatabase);
connection.Open();
using (var contents = connection.CreateCommand())
{
contents.CommandText = "SELECT [Name] FROM Riders";
var r = contents.ExecuteReader();
while (r.Read())
nameString += (r["Name"].ToString() + ",");
connection.Close();
}
}
//Populate spinner with Rider Names
string[] nameList = nameString.Split(',');
var ridernameAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, nameList);
ridernameAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
RiderSelectSpinner.Adapter = ridernameAdapter;
效果很好,名字出现在我的微调器中,用户可以 select。
我来这里的原因是,我现在想在给定第一列的值(名称).
我有所有代码可以识别他们 select 自己。有人可以指导我在 ADO.NET 中形成一个查询,在给定第一行条目的情况下获取该行的其余部分吗?像下面这样的东西?
contents.CommandText = "SELECT * FROM Riders WHERE [Name] = @Name"; //FIX
contents.Parameters.AddWithValue("@Name", Name);
感谢您的宝贵时间和帮助。
var conn = new SQLite.Net.SQLiteConnection(plat, path);
var resunt = conn.Table<Riders>().FirstOrDefault(x => x.Name == name); //Using LINQ or
或
var conn = new SQLite.Net.SQLiteConnection(plat, path);
var resunt = conn.Query<Riders>("SELECT * FROM [Riders] WHERE [Name]=" + name);
我的 C# 技能非常有限。我的代码背景是 MATLAB、FORTRAN,最近,Python。我在 visual studio 中使用 Xamarin 到 bootstrap 一个智能设备应用程序,以便在内部进行快速演示。
在此应用程序的其他地方,我使用 ADO.NET 创建了一个 SQLite 数据库,并使用用户 select 来自选择器、微调器和文本输入的条目填充它。每行是那个人的 'profile'。
现在,应用程序的另一部分采用第一列(配置文件名称)并填充一个微调器,这样用户就可以 select 自己:
//Check if database exists and get rider names for selection
bool exists = File.Exists(pathToDatabase);
string nameString = string.Empty;
if (exists)
{
Console.WriteLine("Reading database");
var connection = new SqliteConnection("Data Source=" + pathToDatabase);
connection.Open();
using (var contents = connection.CreateCommand())
{
contents.CommandText = "SELECT [Name] FROM Riders";
var r = contents.ExecuteReader();
while (r.Read())
nameString += (r["Name"].ToString() + ",");
connection.Close();
}
}
//Populate spinner with Rider Names
string[] nameList = nameString.Split(',');
var ridernameAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerItem, nameList);
ridernameAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
RiderSelectSpinner.Adapter = ridernameAdapter;
效果很好,名字出现在我的微调器中,用户可以 select。
我来这里的原因是,我现在想在给定第一列的值(名称).
我有所有代码可以识别他们 select 自己。有人可以指导我在 ADO.NET 中形成一个查询,在给定第一行条目的情况下获取该行的其余部分吗?像下面这样的东西?
contents.CommandText = "SELECT * FROM Riders WHERE [Name] = @Name"; //FIX
contents.Parameters.AddWithValue("@Name", Name);
感谢您的宝贵时间和帮助。
var conn = new SQLite.Net.SQLiteConnection(plat, path);
var resunt = conn.Table<Riders>().FirstOrDefault(x => x.Name == name); //Using LINQ or
或
var conn = new SQLite.Net.SQLiteConnection(plat, path);
var resunt = conn.Query<Riders>("SELECT * FROM [Riders] WHERE [Name]=" + name);