Я делаю приложение Windows Form в C #, используя базу данных SQlite. У меня есть выпадающий список, в который входят имена игроков, взятые из таблицы с именем «Игрок» . Я хочу показать конкретную статистику выбранного игрока из combo box
в textbox
, но эта статистика находится в другой таблице с именем "Player_Attributes"
. Обе таблицы содержат идентификатор игрока, общий для обеих таблиц.
Возможно ли, чтобы кто-то показал мне, как это можно сделать? Заранее спасибо.
Я отображаю данные ComboBox следующим образом:
private void Form1_Load(object sender, EventArgs e)
{
string filename = @"C:\Users\nicho\Documents\nicholas2ndyearproject\database.sqlite";
string sql = "select * from Player";
var conn = new SQLiteConnection("Data Source=" + filename + ";Version=3;");
try
{
conn.Open();
DataSet ds = new DataSet();
var da = new SQLiteDataAdapter(sql, conn);
da.Fill(ds);
playersListBox.DataSource = ds.Tables[0];
playersListBox.DisplayMember = "player_name";
}
catch (Exception)
{
throw;
}
}
private void playersListBox_SelectedIndexChanged(object sender, EventArgs e)
{
string ID = playersListBox.SelectedValue.ToString();
}
Раскрывающийся код
private void playersListBox_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string filename = @"C:\Users\nicho\Documents\nicholas2ndyearproject\database.sqlite";
var conn = new SQLiteConnection("Data Source=" + filename + ";Version=3;");
{
using (SQLiteCommand cmd = new SQLiteCommand("SELECT player_name, Player_Attributes.sprint_speed FROM Player JOIN Player_Attributes ON Player.player_api_id = Player_Attributes.player_api_id;"))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
cmd.Parameters.AddWithValue("@player_api_id", playersListBox.SelectedValue);
SQLiteDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
txtRating.Text = reader["rating"].ToString();
}
conn.Close();
}
}
}
catch (Exception)
{
throw;
}
}