没有任何参数符合require formal参数

时间:2015-11-20 00:15:01

标签: c# mysql

我正在测试mysqlc#内容,我只使用控制台应用程序并将来将其改编为Windows窗体。发生了一个错误,我似乎无法修复它。

方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace databaseTest
{
class Program
{
    private MySqlConnection connection; //connection property
    private string server;
    private string database;
    private string uid;
    private string password;

    static void Main(string[] args)
    {

        while (true)
        {
            Console.Clear();
            Program myProg = new Program();
            myProg.Initialize();
            Console.WriteLine("Choose item;");
            Console.WriteLine("<A> Add Record");
            Console.WriteLine("<B> Delete Record");
            Console.WriteLine("<C> Update Record");
            Console.WriteLine("<D> Show Record");
            Console.WriteLine("<E> Count Records");
            Console.WriteLine("<F> Search Records");
            Console.WriteLine("<X> Exit");
            ConsoleKeyInfo myKey = Console.ReadKey();
            if (myKey.Key == ConsoleKey.A)
            {
                myProg.Insert();
            }
        }
    }

    private void Initialize()
    {
        server = "localhost"; //local host (WAMP)
        database = "my_db"; //database name
        uid = "root"; //database username 
        password = ""; //database password
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
        connection = new MySqlConnection(connectionString);
    }

    private bool OpenConnection()
    {
        try
        {
            connection.Open();
            return true;
        }
        catch (MySqlException ex)
        {
            //When handling errors, you can your application's response based 
            //on the error number.
            //The two most common error numbers when connecting are as follows:
            //0: Cannot connect to server.
            //1045: Invalid user name and/or password.
            switch (ex.Number)
            {
                case 0:
                    Console.WriteLine("Cannot connect to server.  Contact administrator");
                    break;

                case 1045:
                    Console.WriteLine("Invalid username/password, please try again");
                    break;
            }
            return false;
        }
    }

    private bool CloseConnection()
    {
        try
        {
            connection.Close();
            return true;
        }
        catch (MySqlException ex)
        {
            Console.WriteLine(ex.Message);
            return false;
        }
    }

    public void Insert()
    {
        List<databaseOperations.User> user = new List<databaseOperations.User>();
        databaseOperations.User x = new databaseOperations.User();
        Console.Clear();
        Console.WriteLine("---> Insert Record\n");
        Console.WriteLine("Enter numeric ID: (***)");
        int ID = int.Parse(Console.ReadLine());
        Console.WriteLine("Enter first name:");
        String firstName = Console.ReadLine();
        Console.WriteLine("Enter last name:");
        String lastName = Console.ReadLine();
        Console.WriteLine("Enter telephone:");
        String telephone = Console.ReadLine();
        x.ID = ID;
        x.firstName = firstName;
        x.lastName = lastName;
        x.telephone = telephone;
        user.Add(x);
        databaseOperations.InsertToDatabase(x);
    }
}
}

Dll方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace databaseTest
{
    class databaseOperations
    {
        private MySqlConnection connection; //connection property
    private string server;
    private string database;
    private string uid;
    private string password;

    public class User
    {
        public int ID { get; set; }

        public string firstName { get; set; }

        public string lastName { get; set; }

        public string telephone { get; set; }
    }

    private void Initialize()
    {
        server = "localhost"; //local host (WAMP)
        database = "my_db"; //database name
        uid = "root"; //database username 
        password = ""; //database password
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
        connection = new MySqlConnection(connectionString);
    }

    private bool OpenConnection()
    {
        try
        {
            connection.Open();
            return true;
        }
        catch (MySqlException ex)
        {
            //When handling errors, you can your application's response based 
            //on the error number.
            //The two most common error numbers when connecting are as follows:
            //0: Cannot connect to server.
            //1045: Invalid user name and/or password.
            switch (ex.Number)
            {
                case 0:
                    Console.WriteLine("Cannot connect to server.  Contact administrator");
                    break;

                case 1045:
                    Console.WriteLine("Invalid username/password, please try again");
                    break;
            }
            return false;
        }
    }

    private bool CloseConnection()
    {
        try
        {
            connection.Close();
            return true;
        }
        catch (MySqlException ex)
        {
            Console.WriteLine(ex.Message);
            return false;
        }
    }
    public void InsertToDatabase(int ID, string firstName,  string lastName, string telephone)
    {
        string query = "INSERT INTO tbl_user (ID,First_Name,Last_Name,Telephone) VALUES('" + ID + "', '" + firstName + "','" + lastName + "','" + telephone + "')";
        if (this.OpenConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.ExecuteNonQuery();
            this.CloseConnection();
            Console.WriteLine("\n -->Record Added - Press enter to continue...");
            Console.ReadLine();
        }
    }
}
}

我正在尝试使用InsertToDatabase

的dll方法

我得到的错误是:

  

错误CS7036没有给出的参数对应于'databaseOperations.InsertToDatabase(int,string,string,string)所需的形式参数'firstName'

如果我改变

databaseOperations.InsertToDatabase(ID, firstName, lastName, telephone);

我得到了这个错误:

  

严重级代码说明项目文件行   错误CS0120非静态字段,方法或属性'databaseOperations.InsertToDatabase(int,string,string,string)需要对象引用

1 个答案:

答案 0 :(得分:4)

您还没有创建links = soup.find_all('a href') for link in links: print(link) 的实例。方法databaseOperationsinstance method

另外,正如您所提到的,您是c#的新手 - 您应该使用大写首字母(Pascal案例)命名类,并使用小写首字母(驼峰案例)命名:https://msdn.microsoft.com/en-us/library/x2dbyw72.aspx

我已经编写了以下示例,假设您已将databaseOperations.InsertToDatabase课程重命名为databaseOperations

DatabaseOperations

另请注意,您的DatabaseOperations databaseOperations = new DatabaseOperations(); databaseOperations.InsertToDatabase(x.ID, x.firstName, x.lastName, x.telephone); 课程目前尚未拨打DatabaseOperations。您可能需要从构造函数中调用它,例如:

Initialize