【问题标题】:How can I join SQL Server tables in C#?如何在 C# 中连接 SQL Server 表?
【发布时间】:2023-02-13 06:37:15
【问题描述】:

我的 SQL Server 数据库的 16 个表中有一个名为 LEADER 的列。我想连接所有表以显示 Leader 列及其在我的数据库中所属的表

SqlCommand cmd = new SqlCommand("Select GroupLeaders.ID, Account.Leader, Engineers.Leader from GroupLeaders inner join Account on GroupLeaders.id = Account.Leader", conn);

【问题讨论】:

  • 如果您的问题是关于 SQL Server 的,请删除 C# 代码和 [datagridview] 标签。显示您尝试过的内容以及结果。

标签: c# sql-server datagridview


【解决方案1】:

你可以试试这个

选择“Table1”作为来源,来自 Table1 的领导者 联合所有

选择“Table2”作为来源,来自 Table2 的领导者 联合所有

选择“Table3”作为来源,来自 Table3 的领导者 联合所有

...

选择“Table16”作为来源,来自 Table16 的领导者

注意:确保将“Table1”、“Table2”等替换为表的实际名称。此外,LEADER 列应该出现在所有 16 个表中才能使此查询正常工作。

【讨论】:

  • 拜托,你能不能写一个代码来在 DatagridView 中显示它……我在这里很困惑。
【解决方案2】:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace DisplayDataInDataGridView
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string connectionString = "Server=(local);Database=TestDB;Integrated Security=True";
            string query = "SELECT GroupLeaders.ID, GroupLeaders.Leader AS 'GroupLeaders Leader', " + 
                           "Account.Leader AS 'Account Leader', " + 
                           "Engineers.Leader AS 'Engineers Leader', " +
                           "Table1.Leader AS 'Table1 Leader', " + 
                           "Table2.Leader AS 'Table2 Leader', " + 
                           "... " +
                           "Table15.Leader AS 'Table15 Leader' " +
                           "FROM GroupLeaders " + 
                           "INNER JOIN Account ON GroupLeaders.ID = Account.Leader " +
                           "INNER JOIN Engineers ON GroupLeaders.ID = Engineers.Leader " + 
                           "INNER JOIN Table1 ON GroupLeaders.ID = Table1.Leader " + 
                           "INNER JOIN Table2 ON GroupLeaders.ID = Table2.Leader " + 
                           "... " + 
                           "INNER JOIN Table15 ON GroupLeaders.ID = Table15.Leader";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
                {
                    DataTable dt = new DataTable();
                    adapter.Fill(dt);

                    dataGridView1.DataSource = dt;
                }
            }
        }
    }
}

注意:您需要将“Server=(local)”和“Database=TestDB”替换为适合您的 SQL Server 实例和数据库的值,并替换“Table1”、“Table2”、...、“Table15”使用表的实际名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多