C# 使用SQL语句从多个表中查询数据并合并到一个新表
以下代码使用循环从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();
}
}
常见问题排查
如果获取的数据显示不出至表格中,您可以先确认一下以下几点:
- 检查您的代码中是否有对新表的创建和列定义的操作。
- 检查您的代码中是否有将新表与DataGridView进行绑定的操作。
- 检查您的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);
}
原文地址: https://www.cveoy.top/t/topic/ntL9 著作权归作者所有。请勿转载和采集!