使用c#方法执行SQL查询

时间:2017-11-05 06:44:09

标签: 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, 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");


            }

1 个答案:

答案 0 :(得分:-1)

不是将参数列表作为(Control,String)的硬编码序列,而是使该方法接受字典类型为Dictionary(Control,String)。然后在该方法中,您可以循环遍历Dictionary中的所有(键,值)对并设置控件的值(在C#中使用词典非常简单,阅读相关的MSDN文档将为您提供所需的详细信息)。这样,您就不需要传递不必要的或重复的参数,从而避免重复。