winform通过4个条件查询两个结果

c#通过4个条件查询两个结果
通过数据表“变损收取” 中满足:
条件1 :力率标准(comboBox1);条件2 :变压器容量 (comboBox2);条件3:损耗类型 (comboBox3);
条件4 :用电量 (textBox1) 此条件对应数据表中的“用电量上限”,是一个区间值,如用电量为800则取用电量上限为864对应的有、无功变损,用电900则取电量上限为918对应有、无功变损,以此类推。
查询 结果1:有功变损 (textBox2);结果2:有功变损 (textBox3)
请问该如何写?

img

img

string sql = string.Format("select top 1 有功变损, 无功变损 from 你的表 where 力率标准 = {0} and 变压器容量 = {1} and 损耗类型 = '{2}' and 用电量上限 > {3}", comboBox1.Text, comboBox2.Text, comboBox3.Text, textBox1.Text);

SqlDataReader reader = ExecuteReader(sql);

if (reader.Read())
{
    textBox2.Text = reader[0].ToString();
    textBox3.Text = reader[1].ToString();
}

reader.Close();

以下内容部分参考ChatGPT模型:


根据提问者的需求,可以通过以下步骤查询两个结果:

  1. 首先,获取四个条件的值,即comboBox1、comboBox2、comboBox3和条件4的值。
  2. 然后,使用这些条件值来构建查询语句,以从“变损收取”数据表中检索满足条件的数据。
  3. 最后,使用查询结果来生成两个结果。

以下是一个示例代码,用于实现上述步骤:

// 获取四个条件的值
string condition1 = comboBox1.Text;
string condition2 = comboBox2.Text;
string condition3 = comboBox3.Text;
string condition4 = "some value"; // 替换为条件4的值

// 构建查询语句
string query = "SELECT * FROM 变损收取 WHERE 力率标准='" + condition1 + "' AND 变压器容量='" + condition2 + "' AND 损耗类型='" + condition3 + "' AND 条件4='" + condition4 + "'";

// 执行查询语句
DataTable results = new DataTable();
using (SqlConnection connection = new SqlConnection("your connection string"))
{
    SqlCommand command = new SqlCommand(query, connection);
    SqlDataAdapter adapter = new SqlDataAdapter(command);
    adapter.Fill(results);
}

// 生成两个结果
// 结果1:显示查询结果
dataGridView1.DataSource = results;

// 结果2:计算查询结果的某些值
double totalLoss = 0;
foreach (DataRow row in results.Rows)
{
    totalLoss += Convert.ToDouble(row["损耗值"]);
}
label1.Text = "总损耗值:" + totalLoss.ToString();

请注意,这只是一个示例代码,并且需要根据实际情况进行修改和优化。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快