2016-07-16 7 views
0

私はc#windowsアプリケーションで作業しています。私はcsvファイルからmysqlサーバにデータをインポートするプロジェクトを行っています。私は、データのをインポートするための5月のリンクを得たが、私は問題追加情報:外部表が予期された形式ではありません。 CSVファイル

持つことイムをしようとすると、

追加情報:私は

働いている外部テーブルには、私のコードで期待される形式

ではありませんMicrosoft Visual Studio 2015、.NET Framework 4.5.2にあります。

コード行で

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

エラー:

my_con.Open(); 

男は私の問題を解決するためにしてください私を助けます。

+0

接続文字列の問題:https://www.connectionstrings.com/excel/ –

+0

@x ...その接続文字列が優れています。私はCSVファイルを使用していますが、私は接続を使用する必要がありますか? –

+0

csvファイルの場合、File.ReadAllLinesを使用するだけで簡単です。次に、string.Splitを使用して行を分割します。 –

答えて

0

あなたはこれがあなたのcsvファイル&ファイルを読み込むへの接続をオープンするのに役立ちますあなたの接続文字列を次のように変更

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

を作成する必要があります。

関連する問題