Il n'y a pas d'argument donné qui correspond au besoin de paramètre formel

Je suis en essais hors mysql et c# des trucs, je suis seulement en utilisant une application de console et de l'adapter à un formulaire windows à l'avenir. Il y a eu une erreur qui s'est produite et je n'arrive pas à le résoudre.

Méthode:

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);
}
}
}

Méthode 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();
}
}
}
}

Je suis en train d'utiliser la méthode dll pour InsertToDatabase

L'erreur que j'obtiens est:

Erreur CS7036 Il n'y a pas d'argument donné qui correspond à la nécessaire paramètre formel 'firstName' de 'databaseOperations.InsertToDatabase(int, string, string, string)

Si je change

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

J'obtiens cette erreur:

Code De Sévérité Description Du Fichier De Projet En Ligne
Erreur CS0120 Une référence d'objet est requise pour la non-champ statique, la méthode ou la propriété 'databaseOperations.InsertToDatabase(int, string, string, string)

Il semble que si vous avez besoin d'utiliser le prénom (par opposition à l'Prenom) pour la ligne suivante: string query = "INSERT INTO tbl_user (ID,Prenom,Nom,Téléphone) VALUES('" + ID + "', '" + prenom + "','" + nom + "','" + téléphone + "')";
e.g INSÉRER DANS tbl_user(ID,prenom,...)
Nope, jette toujours la même erreur
sur prénom ou peut-être une autre colonne.
Note de côté: avez-vous envisagé la possibilité que "Il n'y a pas d'argument donné qui correspond à la nécessaire paramètre formel 'firstName' de 'databaseOperations.InsertToDatabase(int, string, string, string)" ? Comme peut-être InserToDatabase appelée avec un nombre incorrect d'arguments?

OriginalL'auteur Chromatic | 2015-11-20