gpt4 book ai didi

c# - MySql查询合并表并填充dataGridView

转载 作者:行者123 更新时间:2023-11-29 23:48:22 32 4
gpt4 key购买 nike

我正在创建一个链接到在线 MySql 数据库的小型 C# 应用程序,以加深我对这两件事的了解。

在我的数据库中,我有 2 个表“user”和“dvd”,它们的构建如下:

  • 用户:ID、GEBRUIKERSNAAM、PASWOORD
  • DVD:ID、标题、DUUR、用户 ID,...

我现在想做的是从每个表中取出一列并将它们显示在 dataGridView 中。我想要的列来自表 dvd:TITEL 和表用户:GEBRUIKERSNAAM。

使用表 user 中的 ID 和表 dvd 中的外键 USERID,将 DVD 链接到用户(一个用户多个 DVD)。

因此,我想在 dataGridView 中显示 2 列,其中一个用于显示 DVD 的标题,另一个则显示在第一个列上用于显示 DVD 的所有者(巫婆是 GEBRUIKRSNAAM 列)。

为此,我编写了以下代码:

SELECT  'TITEL', dvd.TITEL
FROM xxx.dvd
UNION ALL
SELECT 'GEBRUIKERSNAAM', user.GEBRUIKERSNAAM
FROM xxx.user
INNER JOIN xxx.dvd ON user.ID = dvd.USERID
WHERE user.ID = xxx.dvd.USERID;

但这给我带来了两个问题:

  • 如果我直接在数据库上使用它(使用 SQL 选项卡)phpMyAdmin)它可以工作,但是将两列合并为我不想要的一列。我认为这里的问题是“Union All”部分,但我不知道还能怎么做。

  • 如果我尝试使用我的 C# 应用程序使用此代码,则会收到以下错误:“Functionality SelectCommand.Connection 未初始化”。我知道问题出在这个查询中,因为如果我尝试使用不同的查询,我的代码就会像预期的那样工作。 (它填充 dataGridView)。

         try
    {

    MySqlCommand SelectCommand = new MySqlCommand("SELECT TITEL FROM xxx.dvd UNION ALL SELECT GEBRUIKERSNAAM FROM xxx.user INNER JOIN xxx.dvd ON user.ID = dvd.USERID WHERE user.ID = xxx.dvd.USERID;");
    myConn.Open();
    MySqlDataAdapter sda = new MySqlDataAdapter();
    sda.SelectCommand = SelectCommand;
    DataTable dbdataset = new DataTable();
    sda.Fill(dbdataset);
    BindingSource bSource = new BindingSource();

    bSource.DataSource = dbdataset;
    dataGridView1.DataSource = bSource;
    sda.Update(dbdataset);

    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    myConn.Close();

欢迎针对此问题提供任何帮助、提示或正确的处理方法(最佳实践)谢谢

最佳答案

我不太清楚您的目标是什么,但也许其中的某些部分会对您有所帮助:

SELECT U.GEBRUIKERSNAAM, D.TITLE 
FROM dvd D JOIN user U ON D.USERID = U.ID
WHERE D.ID = 1

这将获取 DVD 表,并为每个条目查找 ID 与 D.USERID 匹配的用户。从合并的行中,它将选择 U.GEBRUIKERSNAAM 和 D.TITLE,但仅选择 dvd ID 为 1 的结果。

如有其他问题,请评论。我希望我正确理解了你的目标。如果您给我一个您想要的输出应该是什么样子的示例并让我编写查询,可能会更容易。

关于c# - MySql查询合并表并填充dataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793129/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com