以下代码使用循环从n个表中查询数据,并使用SQL语句访问数据库,将得到的数据全都添加到一个新表中。

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

常见问题排查

如果获取的数据显示不出至表格中,您可以先确认一下以下几点:

  1. 检查您的代码中是否有对新表的创建和列定义的操作。
  2. 检查您的代码中是否有将新表与DataGridView进行绑定的操作。
  3. 检查您的DataGridView的属性设置是否正确,包括Columns和DataSource等属性。

调试技巧

如果以上步骤都没有问题,您可以在代码中添加一些调试信息,以便更好地了解问题所在。例如,在循环中添加以下代码:

Console.WriteLine($'表{i}中查询到{SqlConnector.GetDataTable(sql).Rows.Count}条记录。');

这样您就可以看到每个表中查询到的记录数,以便更好地排查问题。

异常处理

另外,建议您对异常进行更好的处理,例如记录日志或向用户显示错误信息等。

// 例如,记录异常到日志文件
using (StreamWriter writer = new StreamWriter('error.log', true))
{
    writer.WriteLine(DateTime.Now + ' - ' + ex.Message);
}
C# 使用SQL语句从多个表中查询数据并合并到一个新表

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

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