C# 代码:使用 SQL 语句查询多个表并合并到一个新表中,解决数据无法显示问题

以下代码演示了如何使用 C# 代码查询多个数据库表并将数据合并到一个新表中。

代码示例:

for (int i = 0; i < 16; i++)
{
    string sql = $'select * from {ProductProductionRecorderTableMainName}{i.ToString()}  where {ProductionDate}= '{Time}' ';
    //SqlConnector.InitialSqlAdapterAndFillTable(sql, ref ClassDataAnlysisSqlAdapter,  ref SqlCommandClassDataAnlysis,ref  ClassDataAnlysisSqlCMDBuilder, DaliyOutputTable, 'DaliyOutputTable');
    foreach (DataRow row in SqlConnector.GetDataTable(sql).Rows)
    {
        DaliyOutputTable.Rows.Add(row.ItemArray);
    }

}

public DataTable GetDataTable(string sql)
{
    SqlDataAdapter dataAdapter = null;
    try
    {
        DataTable dataTable = new DataTable();
        lock (ConnLock)
        {
            dataAdapter = new SqlDataAdapter(sql, GetConn());
            dataAdapter.Fill(dataTable);
        }
        return dataTable;
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        dataAdapter.Dispose();
    }
}

常见问题:

如果获取到的数据无法显示在表格中,可能是以下原因导致的:

  • 添加数据到新表代码错误: 尝试在添加数据之前打印出获取到的数据,以确保数据已经正确获取。
  • 新表结构错误: 确保新表已经正确创建,并且有正确的列名和数据类型。

解决方案:

for (int i = 0; i < 16; i++)
{
    string sql = $'select * from {ProductProductionRecorderTableMainName}{i.ToString()}  where {ProductionDate}= '{Time}' ';
    DataTable dataTable = SqlConnector.GetDataTable(sql);
    foreach (DataRow row in dataTable.Rows)
    {
        Console.WriteLine(row['ColumnName1'].ToString() + ', ' + row['ColumnName2'].ToString() + ', ...');
        DaliyOutputTable.Rows.Add(row.ItemArray);
    }
}

// 打印出新表的列名和数据类型
foreach (DataColumn column in DaliyOutputTable.Columns)
{
    Console.WriteLine(column.ColumnName + ', ' + column.DataType.ToString());
}

// 将新表绑定到DataGridView控件上
datGridView.DataSource = DaliyOutputTable;

解释:

  • 代码首先使用循环遍历多个数据库表,并使用 SQL 语句查询每个表中的数据。
  • 然后,将查询到的数据添加到一个新的 DataTable 中。
  • 最后,将新的 DataTable 绑定到 DataGridView 控件上,以显示数据。

注意:

  • 代码中的 ProductProductionRecorderTableMainNameTime 需要替换为实际的表名和时间值。
  • 代码中的 ColumnName1ColumnName2 需要替换为实际的列名。
  • SqlConnector 类需要根据实际情况进行定义。
  • ConnLock 是一个用于防止并发访问数据库连接的锁。
  • 代码中的 GetConn() 方法需要根据实际情况进行定义。

通过以上步骤,就可以将多个数据库表中的数据合并到一个新表中,并将其显示在 DataGridView 控件上。

希望这篇文章对您有所帮助!


原文地址: https://www.cveoy.top/t/topic/ntLK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录