Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c方法执行SQL查询_C#_Mysql - Fatal编程技术网

C# 使用c方法执行SQL查询

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

运行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");


            }

与其将参数列表作为控件String的硬编码序列,不如让方法接受DictionaryControl类型的Dictionary,String。然后,在该方法中,您可以循环字典中的所有键、值对,并为使用C语言的字典的控件设置值,这非常简单,阅读相关的MSDN文档将获得所需的详细信息。这样,您就不需要传递不必要的或重复的参数,从而避免了重复。

这似乎是我要寻找的答案,但对如何实现它有点困惑。所以在这个方法中,我会输入字典名,而不是硬编码所有这些值,当点击按钮时,它会给字典赋值?您是否有可能在我的示例中提供代码?您可以在字典的键上使用foreach循环,而不是while循环,然后对每个键执行如下操作:key.Text=myReader[dict[key]]。