C# 使用 ComboBox 和datetimepicker的值作为查询条件,查询SQlite数据库其中三列的值的总和 、查询另外一列值的和作为饼图的Y轴两个数据数据
时间: 2024-03-20 14:44:40 浏览: 84
C#中根据查询的值绘制饼状图
以下是一个使用 ComboBox 和 DateTimePicker 作为查询条件来查询 SQLite 数据库的例子,其中总和为三列的值并将另一列的值分别作为饼图的 Y 轴数据:
```csharp
using System.Data.SQLite;
using System.Windows.Forms.DataVisualization.Charting;
// 声明 SQLite 连接字符串
string connString = "Data Source=mydb.db;Version=3;";
private void button1_Click(object sender, EventArgs e)
{
// 获取 ComboBox 和 DateTimePicker 的值
string comboBoxValue = comboBox1.SelectedItem.ToString();
DateTime dateTimeValue = dateTimePicker1.Value;
// 创建 SQLite 连接对象
using (SQLiteConnection conn = new SQLiteConnection(connString))
{
// 打开连接
conn.Open();
// 查询三列值的总和
string sql1 = "SELECT SUM(column1 + column2 + column3) AS total FROM mytable WHERE column4 = @comboBoxValue AND column5 = @dateTimeValue";
using (SQLiteCommand cmd1 = new SQLiteCommand(sql1, conn))
{
// 添加参数
cmd1.Parameters.AddWithValue("@comboBoxValue", comboBoxValue);
cmd1.Parameters.AddWithValue("@dateTimeValue", dateTimeValue);
// 执行查询
object result1 = cmd1.ExecuteScalar();
// 显示结果
if (result1 != null)
{
MessageBox.Show("Total: " + result1.ToString());
}
}
// 查询另一列的值的和
string sql2 = "SELECT column6, SUM(column7) AS total FROM mytable WHERE column4 = @comboBoxValue AND column5 = @dateTimeValue GROUP BY column6";
using (SQLiteCommand cmd2 = new SQLiteCommand(sql2, conn))
{
// 添加参数
cmd2.Parameters.AddWithValue("@comboBoxValue", comboBoxValue);
cmd2.Parameters.AddWithValue("@dateTimeValue", dateTimeValue);
// 执行查询
using (SQLiteDataReader reader = cmd2.ExecuteReader())
{
// 清空饼图
chart1.Series[0].Points.Clear();
// 添加饼图数据
while (reader.Read())
{
chart1.Series[0].Points.AddXY(reader["column6"].ToString(), reader["total"]);
}
}
}
}
}
```
请将 `mydb.db` 更改为您的 SQLite 数据库文件名,将 `mytable` 更改为您的表名,将 `column1`、`column2`、`column3`、`column4`、`column5`、`column6` 和 `column7` 更改为您的列名。此外,您还需要在窗体设计器中添加一个 ComboBox、一个 DateTimePicker 和一个 Chart 控件,并将 Chart 控件的 Series 中的 ChartType 设置为 Pie。
阅读全文