C# 使用c方法执行SQL查询
运行SQL查询,然后在Winform文本框上显示该信息,同时避免重复代码的最佳技术是什么?根据我对c语言的基本理解,我创建了下面的方法,但它要求我在最后添加两次相同的文本C# 使用c方法执行SQL查询,c#,mysql,C#,Mysql,运行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, st
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");
}
与其将参数列表作为控件String的硬编码序列,不如让方法接受DictionaryControl类型的Dictionary,String。然后,在该方法中,您可以循环字典中的所有键、值对,并为使用C语言的字典的控件设置值,这非常简单,阅读相关的MSDN文档将获得所需的详细信息。这样,您就不需要传递不必要的或重复的参数,从而避免了重复。这似乎是我要寻找的答案,但对如何实现它有点困惑。所以在这个方法中,我会输入字典名,而不是硬编码所有这些值,当点击按钮时,它会给字典赋值?您是否有可能在我的示例中提供代码?您可以在字典的键上使用foreach循环,而不是while循环,然后对每个键执行如下操作:key.Text=myReader[dict[key]]。