c#通过4个条件查询两个结果
通过数据表“变损收取” 中满足:
条件1 :力率标准(comboBox1);条件2 :变压器容量 (comboBox2);条件3:损耗类型 (comboBox3);
条件4 :用电量 (textBox1) 此条件对应数据表中的“用电量上限”,是一个区间值,如用电量为800则取用电量上限为864对应的有、无功变损,用电900则取电量上限为918对应有、无功变损,以此类推。
查询 结果1:有功变损 (textBox2);结果2:有功变损 (textBox3)
请问该如何写?
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();
根据提问者的需求,可以通过以下步骤查询两个结果:
以下是一个示例代码,用于实现上述步骤:
// 获取四个条件的值
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();
请注意,这只是一个示例代码,并且需要根据实际情况进行修改和优化。