将两个ID连接在一起以获得另一个列结果

时间:2019-05-24 08:12:00

标签: c# visual-studio winforms combobox

我正在使用Windows Form和C#和SQlite数据库。我有一个带有玩家姓名的组合框,下面有一个文本框,需要填写总体评分

我有两个名为Player和Player_Attributes的表。现在,我需要加入Player_Api_ID,以便可以根据在Player表中找到的Player名称从Player_Attributes表中获得总体评级结果。有人可以告诉我如何进行陈述吗?谢谢

玩家表1

Player Table1

Player_Attributes表

enter image description here

UI

enter image description here

下拉代码

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;
        }
    }

1 个答案:

答案 0 :(得分:0)

如果我的假设是正确的,希望这就是你想要的。

SELECT  FirstName, LastName, Player_Attributes.overall_rating
FROM Player JOIN Player_Attributes
ON Player.Player_api_id= Player_Attributes.Player_api_id   

我希望您的总体逻辑是错误的-在此更改事件中,playersListBox_SelectedIndexChanged()需要绑定所有值。 例如。

txtRating.Text = queryresultobject.overall_rating.value;
txtName.Text = queryresultobject.Name;

就像上面的onchange事件一样,您需要绑定值。首先介绍如何在asp.net的下拉列表更改时绑定值

This link will give you more clarity on how to implement

已编辑-更改了加入逻辑

相关问题