Re,
ta boucle est mauvaise, ta requête erronée, et ton objet d'accès à la BDD peut ne pas être correctement initialisé : normale que ça marche pas.
Sympa d'avoir mis un exemple, mais ça me dit pas si les champs sont de longueur fixe (toutes tes lignes sont identiques de ce côté là), ou s'il s'agit d'un séparateur (espace ou tabulation).
En imaginant qu'il s'agisse d'un séparateur (que je passe en param de la fonction ne le connaissant pas) et que tu aies une table "persons" contenant 3 champs (id, prenom, nom), une version pour MySQL devrait être un truc comac (sans gestion des erreurs/exceptions) :
public void InsertDataFile(string filename, char separator, string cnxstr) {
MySqlConnection cnx = new MySqlConnection(cnxstr);
StreamReader sr = new StreamReader(filename);
string rqt = "insert into persons value (@id, @first, @last)";
string line = "";
cnx.Open();
while ((line = sr.ReadLine()) != null) {
string[] vals = line.Split(separator);
MySqlCommand cmd = new MySqlCommand(rqt, cnx);
cmd.Parameters.AddWithValue("@id", vals[0]);
cmd.Parameters.AddWithValue("@first", vals[1]);
cmd.Parameters.AddWithValue("@last", vals[2]);
cmd.ExecuteNonQuery();
}
cnx.Close();
}
PS : faut pas mettre "résolu" sur tous les messages, hein. Surtout que y'a pas la réponse à ton problème dans ceux-ci