C# 如何用两个texbox输入条件去查询SQlite数据表,返回其中三个列各自和并绑定在饼图中
时间: 2024-03-21 17:42:42 浏览: 20
您可以使用以下步骤来实现:
1. 在 C# 中创建一个 Windows 窗体应用程序,并添加两个 TextBox 控件和一个 Button 控件。
2. 在窗体的代码中,使用 SQLite 数据库连接字符串创建一个 SQLiteConnection 对象。
3. 在 Button 的 Click 事件处理程序中,编写 SQL 查询语句,使用 TextBox 控件的 Text 属性获取两个条件的值,并使用 SQLiteDataAdapter 填充数据到一个 DataTable 中。
4. 使用 Linq 查询语句,从 DataTable 中获取需要的三个列的数据,并将它们和并到一个 List<double> 中。
5. 使用 Chart 控件创建一个饼图,设置饼图的 DataSource 属性为 List<double>,设置 Series 属性的 ChartType 为 Pie,并设置 Legend 属性的 Docking 为 Right。
6. 运行程序并输入条件,单击按钮以查询并绘制饼图。
下面是示例代码:
```csharp
using System.Data;
using System.Data.SQLite;
using System.Linq;
using System.Windows.Forms.DataVisualization.Charting;
private void button1_Click(object sender, EventArgs e)
{
// 获取两个条件的值
string condition1 = textBox1.Text.Trim();
string condition2 = textBox2.Text.Trim();
// 创建 SQLite 连接对象
string connectionString = "Data Source=database.db;Version=3;";
using (var connection = new SQLiteConnection(connectionString))
{
// 构建 SQL 查询语句
string sql = $"SELECT column1, column2, column3 FROM table WHERE column1='{condition1}' AND column2='{condition2}'";
// 使用 SQLiteDataAdapter 填充数据到 DataTable 中
var adapter = new SQLiteDataAdapter(sql, connection);
var dataTable = new DataTable();
adapter.Fill(dataTable);
// 使用 Linq 查询语句获取需要的三个列的数据
var data = dataTable.AsEnumerable().Select(row => row.Field<double>("column1") + row.Field<double>("column2") + row.Field<double>("column3")).ToList();
// 绘制饼图
var chart = new Chart();
chart.DataSource = data;
chart.Series.Add(new Series());
chart.Series[0].ChartType = SeriesChartType.Pie;
chart.Legends.Add(new Legend());
chart.Legends[0].Docking = Docking.Right;
this.Controls.Add(chart);
}
}
```