2017-06-30 5 views
0

プログラミング上の問題があります。xmlを使用してデータベース(アクセス)を正常に読み込むことができますが、関数に変換すると(テーブル名)は現在のコンテキストに存在しません。正しく参照するには?私は、情報を含むデータベース内に複数のタブを持っています。データベースにxmlをロードする(可変スコープ)

private void loadDatbase(String fileName, String tabelName) 
    { 
     { 
      { 
       try 
       { 
        string ConnString = (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\temp\\set.mdb;Persist Security Info=False"); 
        using (OleDbConnection Conn = new OleDbConnection(ConnString)) 
        { 

         SetCon.Text = "In try"; 
         Conn.Open(); 
         DataSet ds = new DataSet(); 
         ds.ReadXml(@"c:\\temp\\"+fileName+".xml"); 
         OleDbCommand cmd = new OleDbCommand(); 
         DataTable dtCSV = new DataTable(); 
         dtCSV = ds.Tables[0]; 
         cmd.Connection = Conn; 
         cmd.CommandType = CommandType.Text; 

         for (int row = 0; row <= dtCSV.Rows.Count - 1; row++) 
         { 
          cmd.Parameters.Clear(); 
          if (dtCSV.Columns.Count > 1) 
          { 
           cmd.Parameters.Add(new OleDbParameter("@Property", (dtCSV.Rows[row][0]))); 
           cmd.Parameters.Add(new OleDbParameter("@Pvalue", (dtCSV.Rows[row][1]))); 
           cmd.Parameters.Add(new OleDbParameter("@Pdefault", (dtCSV.Rows[row][2]))); 
           cmd.Parameters.Add(new OleDbParameter("@PType", (dtCSV.Rows[row][3]))); 

           //cmd.CommandText = ("INSERT INTO table1 " (Property, Pvalue, Pdefault, PType) VALUES (? , ?, ?, ?)"); 
           //The above works no wories however the string below does not tableName does not exist in the current context 
           cmd.CommandText = ("INSERT INTO "+tableName+" (Property, Pvalue, Pdefault, PType) VALUES (? , ?, ?, ?)"); 
           cmd.ExecuteNonQuery(); 
          } 

         } 

        } 
       } 
       catch (Exception ex) 
       { 
        richTextBox1.Text = richTextBox1.Text + "\n Error " + ex + "" + 
         "\n"; ; 
       } 

      } 
     } 
    } 

答えて

1

あなたのメソッドのパラメータ名は、tabelNameと呼ばれていますが、変数tableNameを使用している - スペルに気づきます。方法を変更してください: private void loadDatbase(String fileName, String tableName)