2013-05-15 3 views
0

У меня есть код ниже, чтобы позволить мне добавлять данные с листа excel непосредственно в петь данной базе данных, теперь я хотел бы знать, как я могу назвать метод множественным раз, чтобы добавить данные из двух разных файлов excel сразу, это кнопка, которая вызывает этот метод после щелчка, используя многопоточность.как вызвать метод несколько раз при нажатии кнопки

private void AddToDatabase() 
{ 
    using (OleDbConnection connection = 
       new OleDbConnection(excelConnectionString)) 
    { 
     connection.Open(); 
     CheckNumeberOfSheets(connection); 
    } 
} 

Код кнопки;

private void button1_Click(object sender, EventArgs e) 
{ 
    AddToDatabase(); 
} 
+0

Я полагаю, что excelConnectionString изменится для второго файла Excel, верно? – Axarydax

+0

, который будет иметь место, поскольку имя файла будет, – user2385086

+0

Как сделать параметр excelConnectionString? – Davio

ответ

1

Может быть, вы можете передать строку в ваш метод AddToDatabse как

private void AddToDatabase(string fileName){ 
    if(fileName.Equals("yourfirstFile")) 
    { 
     using (OleDbConnection connection = 
      new OleDbConnection(excelConnectionString)) 
      { 
       connection.Open(); 
       CheckNumeberOfSheets(connection); 

      } 
     } 
    else if(fileName.Equals("yoursecondfile")) 
    { 
     using (OleDbConnection connection = 
      new OleDbConnection(excelConnectionString2)) 
      { 
       connection.Open(); 
       CheckNumeberOfSheets(connection); 

      } 
     } 
    } 

, а затем вызвать его как это

private void button1_Click(object sender, EventArgs e) 
    { 
     AddToDatabase("yourfirstFile"); 
     AddToDatabase("yoursecondFile"); 
    } 
+0

, это сначала сделает первый файл, а затем второй, но я бы хотел, чтобы они добавили их в parele в одном соединении с базой данных – user2385086

0

Шаг 1: создать класс под названием "файлы классов"

public class ClassFiles 
{ 

private String fileName; 
private String excelConnectionString; 


public String getFileName() 
return fileName; 

public void setFileName(String fileName) 
{ 
this.fileName=fileName; 
} 

public String getExcelConnectionString() 
return excelConnectionString; 

public void setExcelConnectionString(String excelConnectionString) 
{ 
this.excelConnectionString=excelConnectionString; 
} 
} 

Шаг 2: В вашей основной класс, добавьте FileName вместе с excelConnection строки, как:

public class MainClass{ 


private void AddFilesToDB(List<ClassFiles>fileDetails){ 

    for(ClassFiles fileDeteil : fileDetails){ 

      using (OleDbConnection connection = 
      new OleDbConnection(fileDeteil.getExcelConnectionString)) 
      { 
       connection.Open(); 
       CheckNumeberOfSheets(connection); 

      } 

    // as well as u can get the file name.. 
      String fileName=fileDeteil.getFileName(); 
    } 
} 

public Static void main(string args[]){ 

    List<ClassFiles> addDetails =new ArrayList<ClassFiles>(); 
    //now add the no of files into the list 
    ClassFiles objFile1=new ClassFiles(); 
    objFile1.setFileName("filename1"); 
    objFile1.setExcelConnectionString("excelConnectionString1"); 
    addDetails.add(objFile1); 

    ClassFiles objFile2=new ClassFiles(); 
    objFile2.setFileName("filename2"); 
    objFile2.setExcelConnectionString("excelConnectionString2"); 
    addDetails.add(objFile2); 

    and so on.. 
    then call the function for further process., 

    new MainClass().AddFilesToDB(addDetails); 
    } 

hope it ll help you..

+0

, это сделало бы это в порядке очереди, но я хотел бы добавить данные все данные в таблицу в parrallel – user2385086

+0

, если вам нужна параллельная манера, а затем пойти с концепцией потока. –

Смежные вопросы