将不同的表连接到 C# 组合框中的不同项目

Posted

技术标签:

【中文标题】将不同的表连接到 C# 组合框中的不同项目【英文标题】:Connecting different tables to different items in combo box in C# 【发布时间】:2018-01-26 18:42:56 【问题描述】:

大家下午好,

我希望有人能以此为我指明正确的方向。我目前正在做一个项目,我正在使用 Access 文件作为数据库。我试图弄清楚如何从我的访问数据库中的不同表中填充组合框中的项目。我正在使用 C# 和 Access 2016。我尝试使用其他一些示例,发现我的方向不正确。

编辑: 这个问题我可能有点含糊。我有大约 7 张桌子,所有桌子都有不同的名称“ESC、AJJH 等”。在 Access 文件中,我需要让表名填充我的组合框,以便当用户选择组合框时,他们可以操作所选表中的数据。我希望这更清楚,如果没有,我深表歉意。

谢谢!

 private void Form1_Load(object sender, EventArgs e)
    

        using (var connection = new OleDbConnection())
        
            connection.ConnectionString =
                @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\grosales\Documents\rhg\RHG\Used.accdb;Jet OLEDB:Database Password = MyDbPassword;";

            try
            
                connection.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                string query = "select * from Tables";
                command.CommandText = query;

                OleDbDataReader reader = command.ExecuteReader();
                while(reader.Read())
                
                    schoolcombo.Items.Add(reader);
                

            
            catch (Exception ex)
            
                MessageBox.Show("Connection Failed\r\n\r\n" + ex.Message);
            

        

【问题讨论】:

这些表有不止一列对吗?...我不认为组合框是控件的正确选择...更像是 datagridview 他们只能通过单击一个简单的按钮来添加数据。它基本上是一个生成十六进制代码并且不会重复自身的生成器。不同的学校需要不同的第一位数字,所以我认为使用访问数据库会更容易,只需根据他们所在的学校将数据添加到字段中 访问是邪恶的......你应该烧掉它安装的任何机器......然后在机器所在的地球上撒盐,这样另一个访问安装就不会增长 Lol 访问还不错 id 推荐使用单列的列表框 【参考方案1】:

您可以使用 DbConnection。 GetSchema 获取表列表。

display the list of tables in access database using c#

【讨论】:

我要试一试。谢谢! 不要忘记评估链接是否有用@G.Rose 知道了!唯一的问题是,当您创建名为“table”或其他任何名称的数据表时,C# 中不再使用 dataRow。您将他代码中的“dataRow”替换为您的数据表的名称,它将起作用【参考方案2】:

不清楚你想要什么。但是假设您的表具有相同类型的列。您可以使用 UNION 语句:

string query = "select field1, field2 from Table1 UNION select field1, field2 from Table2"; //AND SO ON

【讨论】:

抱歉,不知道如何正确表达。我有多个名为“ajjh、esc、hbr、support 等”的表。我想让每个表的名称填充我的组合框中名为“schoolcombo”的项目。我正在编写一个程序,该程序需要能够读取、写入和检查为重复的十六进制选择的任何表

以上是关于将不同的表连接到 C# 组合框中的不同项目的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有前缀列的表连接到 PHP MySQL 或 Laravel 中的另外两个表

将两个部分匹配的表连接到完全匹配

Hibernate:如何在注释中将三个 3 表连接到一个连接表中?

如何将两个事实表连接到一维表

mysql - 如何使用父表中的值将连接表连接到另一个连接表?

将 78 个特定代码从创建的表连接到链接表。不能使用 IN() 函数(字符限制),不能做 RI