Winform 查询SQlite数据库按照四个值Q1 、Q2、Q3和Q4在季度这一列的中Q1 、Q2、Q3和Q4各自的数量并返回datatable
时间: 2024-01-28 13:04:10 浏览: 70
您好,这是一个关于 Winform 查询 SQLite 数据库中四个值 Q1、Q2、Q3 和 Q4 在季度这一列中 Q1、Q2、Q3 和 Q4 各自的数量并返回 DataTable 的示例代码:
```csharp
using System.Data.SQLite;
using System.Data;
public DataTable QuerySQLite() {
string connectionString = "Data Source=<database file path>"; // 数据库连接字符串
string query = "SELECT Q1, Q2, Q3, Q4, " +
"SUM(CASE WHEN Quarter = 'Q1' THEN 1 ELSE 0 END) AS Q1Count, " +
"SUM(CASE WHEN Quarter = 'Q2' THEN 1 ELSE 0 END) AS Q2Count, " +
"SUM(CASE WHEN Quarter = 'Q3' THEN 1 ELSE 0 END) AS Q3Count, " +
"SUM(CASE WHEN Quarter = 'Q4' THEN 1 ELSE 0 END) AS Q4Count " +
"FROM <table name> GROUP BY Q1, Q2, Q3, Q4"; // 查询语句
DataTable dataTable = new DataTable(); // 创建 DataTable
using (SQLiteConnection connection = new SQLiteConnection(connectionString)) {
connection.Open(); // 打开数据库连接
using (SQLiteCommand command = new SQLiteCommand(query, connection)) {
using (SQLiteDataReader reader = command.ExecuteReader()) {
dataTable.Load(reader); // 读取数据到 DataTable 中
}
}
connection.Close(); // 关闭数据库连接
}
return dataTable; // 返回 DataTable
}
```
其中,`<database file path>` 是 SQLite 数据库文件的路径,`<table name>` 是需要查询的表名。通过执行查询语句,将查询结果读取到 DataTable 中并返回。这里使用了 `SUM` 函数和 `CASE WHEN` 语句对 Q1、Q2、Q3 和 Q4 四个值在季度这一列中各自的数量进行统计。注意,这里需要按照 Q1、Q2、Q3 和 Q4 四个值分别分组,因此在 `GROUP BY` 中需要添加这四个列名。
阅读全文