2016-07-16 7 views
0

Ich arbeite in C# Windows-Anwendung Ich habe ein Projekt, das Daten von CSV-Datei auf MySQL-Server importieren soll. Ich habe können Links zu Daten importieren, aber wenn ich versuche, dass im mit den ThemenWeitere Informationen: Externe Tabelle hat nicht das erwartete Format. in CSV-Datei

Zusätzliche Informationen: Externe Tabelle ist nicht im erwarteten Format

in meinem Code

Ich arbeite in Microsoft Visual Studio 2015, .NET Framework 4.5.2.

Codes

private void button1_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog dlg = new OpenFileDialog(); 
      dlg.Filter = "Text files | *.csv"; 
      if (dlg.ShowDialog() == DialogResult.OK) 
      { 
       string fileName; 
       fileName = dlg.FileName; 
       textBox1.Text = fileName; 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 

      if (textBox1.Text != "") 
      { 
       string path = textBox1.Text; 

       string name = ""; 
       string age = ""; 
       string class = ""; 
       string sec = ""; 
       string address = ""; 
       string phno = ""; 

       OleDbConnection my_con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;"); 
       my_con.Open(); 

       OleDbCommand icmd = new OleDbCommand("SELECT * FROM [dataGridView1_Data$]", my_con); 

       OleDbDataReader dr = icmd.ExecuteReader(); 
       while (dr.Read()) 
       { 
        name = dr[0].ToString(); 
        age = dr[1].ToString(); 
        class = dr[2].ToString(); 
        sec = dr[3].ToString(); 
        address = dr[4].ToString(); 
        phno = dr[6].ToString(); 

        MySqlConnection con = new MySqlConnection("SERVER=10.65.43.687;" + 
       "DATABASE=student;" + 
       "UID=root;" + 
       "PASSWORD=root123"); 
        con.Open(); 

        MySqlCommand icmmd = new MySqlCommand("INSERT INTO student(name,age,class,sec,address,phno)VALUES(@a,@b,@c,@d,@e,@f)", con); 
        icmmd.Parameters.AddWithValue("a", Name); 
        icmmd.Parameters.AddWithValue("b", Age); 
        icmmd.Parameters.AddWithValue("c", Class); 
        icmmd.Parameters.AddWithValue("d", Section); 
        icmmd.Parameters.AddWithValue("e", Address); 
        icmmd.Parameters.AddWithValue("f", Phone); 
        icmmd.ExecuteNonQuery(); 
        con.Close(); 
       } 
       MessageBox.Show("data Imported"); 
       textBox1.Text = ""; 
      } 
      else if (textBox1.Text == "") 
      { 

      }   
      MessageBox.Show("Upload Successfull!"); 
     } 

Fehler in der Zeile:

my_con.Open(); 

Jungs mir bitte helfen, mein Problem zu lösen.

+0

Problem mit der Verbindungszeichenfolge: https://www.connectionstrings.com/excel/ –

+0

@x ... Es ist eine Excel-Verbindungszeichenfolge. aber ich benutze CSV-Datei ist, dass ich Excel-Verbindung verwenden muss? –

+0

Für CSV-Datei, verwenden Sie einfach File.ReadAllLines, es ist einfacher. Verwenden Sie dann string.Split, um die Zeile zu teilen. –

Antwort

0

Sie müssen die folgenden Änderungen an der Verbindungszeichenfolge

string _name = string.Empty; 

     OpenFileDialog OFD = new OpenFileDialog(); 

     if(OFD.ShowDialog()==DialogResult.OK) 
     { 
      _name = OFD.FileName; 
     } 

     var pathstring = System.IO.Path.GetDirectoryName(_name); 
     con = new OleDbConnection(); 
     con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+pathstring+";Extended Properties='Text;HDR=YES;FMT=Delimited;'"; 
     con.Open(); 

     da = new OleDbDataAdapter("Select * from "+System.IO.Path.GetFileName(_name), con); 
     dt = new DataTable(); 
     da.Fill(dt); con.Close(); 

Dies Sie eine Verbindung öffnen, um Ihre CSV-Datei & die Datei lesen wird dazu beitragen, machen.

Verwandte Themen