方法' load_table_1'没有过载需要' 0'参数

时间:2013-06-26 08:19:01

标签: c#

namespace Gtec_Solution{
    public partial class Main : Form {
        string myconnection = "datasource=localhost;port=3306;username = root;password = 12345V";
        public Main(string userName){

           InitializeComponent();
           load_table_1();
        }

        public void load_table_1(DataTable dt){
           DataTable d;
           Load_Table_Class ld = new Load_Table_Class();
           string Query_1 = "SELECT * FROM gtec_computer.employee";
           d = ld.loading_table(Query_1);
           dataGridView3.DataSource = d;
        }
     }
}

namespace Gtec_Solution{
    public class Load_Table_Class{
        public DataTable loading_table(string Query){
            string myconnection = "datasource=localhost;port=3306;username = root;password = 12345V";
            MySqlConnection con = new MySqlConnection(myconnection);
            MySqlCommand cmd = new MySqlCommand(Query, con);
            con.Open();
            MySqlDataAdapter mda = new MySqlDataAdapter();
            mda.SelectCommand = cmd;
            DataTable dt = new DataTable();
            mda.Fill(dt);
            BindingSource bs = new BindingSource();
            bs.DataSource = dt;
            mda.Update(dt);
            return dt;
       }
   }
}

5 个答案:

答案 0 :(得分:2)

好吧,错误消息显示此调用:

 load_table_1();

无效,因为没有params,此方法没有重载。但是,您为dt声明的参数load_table_1仍未使用,因此您可以安全地删除它:

    public void load_table_1()
    {
        DataTable d;
        Load_Table_Class ld = new Load_Table_Class();
        string Query_1 = "SELECT * FROM gtec_computer.employee";
        d = ld.loading_table(Query_1);
        dataGridView3.DataSource = d;
    }

答案 1 :(得分:0)

方法load_table_1(DataTable dt)似乎不需要或使用参数DataTable dt。将其从签名中删除。

答案 2 :(得分:0)

您需要将DataTable传递给方法load_table_1

您已将该功能定义为:

public void load_table_1(DataTable dt)
    {
        DataTable d;
        Load_Table_Class ld = new Load_Table_Class();
        string Query_1 = "SELECT * FROM gtec_computer.employee";
        d = ld.loading_table(Query_1);
        dataGridView3.DataSource = d;
    }

因此你需要这样做:

  DataTable dt = new DataTable(); // Or populate it from your service
  load_table_1(dt); // pass the dt object as an argument to load_table_1

或者从方法中删除DataTable参数。例如:

public void load_table_1()
    {
        DataTable d;
        Load_Table_Class ld = new Load_Table_Class();
        string Query_1 = "SELECT * FROM gtec_computer.employee";
        d = ld.loading_table(Query_1);
        dataGridView3.DataSource = d;
    }

答案 3 :(得分:0)

方法Main

load_table_1();

但在班级Main的其他地方:

public void load_table_1(DataTable dt)

您需要将DataTable的实例传递给load_table_1

答案 4 :(得分:0)

在这里你调用一个没有参数的方法:

public Main(string userName)
{
    InitializeComponent();
    load_table_1();   //THIS LINE

}

然而,您调用的方法需要一个参数:

public void load_table_1(DataTable dt) // IN HERE
{
    DataTable d;
    Load_Table_Class ld = new Load_Table_Class();
    string Query_1 = "SELECT * FROM gtec_computer.employee";
    d = ld.loading_table(Query_1);
    dataGridView3.DataSource = d;
}

第二种方法不使用param,所以只需将其删除即可:

public void load_table_1() // DELETE PARAM HERE
{
    DataTable d;
    Load_Table_Class ld = new Load_Table_Class();
    string Query_1 = "SELECT * FROM gtec_computer.employee";
    d = ld.loading_table(Query_1);
    dataGridView3.DataSource = d;
}