运行SQL查询然后在Winform文本框中显示该信息同时避免重复代码的最佳技术是什么?通过我对c#的基本了解,我创建了以下方法,但它要求我在最后添加两次相同的文本。
public MySqlDataReader RunQueryTextField5(string query, Control c1, string s1, Control c2, string s2, Control c3, string s3, Control c4, string s4, Control c5, string s5)
{
MySqlConnection conDataBase = new MySqlConnection(connString);
MySqlCommand cmdDatabase = new MySqlCommand(query, conDataBase);
MySqlDataReader myReader;
conDataBase.Open();
myReader = cmdDatabase.ExecuteReader();
while (myReader.Read())
{
c1.Text = (myReader[s1].ToString());
c2.Text = (myReader[s2].ToString());
c3.Text = (myReader[s3].ToString());
c4.Text = (myReader[s4].ToString());
c5.Text = (myReader[s5].ToString());
}
conDataBase.Close();
return myReader;
}
//如果是另一个查询我是如何调用它的,但是你可以看到,因为这个只有四个字段,我在最后两个字段上传递两次。
RunQueryTextField5("SELECT DISTINCT * FROM `Course qualification Prices` WHERE `qualification name` = '" + cboQualificationName.Text + "' AND `delivery mode` = '" + cboTrainingDeliveryMode.Text + "' ",
txtTrainingQualifcationCode, "course unit code",
txtTrainingQualificationPrice, "Price",
txtTrainingMaterialsHyperLink, "Support Materials Hyperlink",
txtTrainingMaterialsHyperLink, "Support Materials Hyperlink",
txtTrainingMaterialsHyperLink, "Support Materials Hyperlink");
}
答案 0 :(得分:-1)
不是将参数列表作为(Control,String)的硬编码序列,而是使该方法接受字典类型为Dictionary(Control,String)。然后在该方法中,您可以循环遍历Dictionary中的所有(键,值)对并设置控件的值(在C#中使用词典非常简单,阅读相关的MSDN文档将为您提供所需的详细信息)。这样,您就不需要传递不必要的或重复的参数,从而避免重复。