sql server - C# bulk insert to sql, but table is empty -


i want insert bulk data data table, after execution of table in database it's still empty when test query see if data written.

below code inserting data table sql:

private void btntosql_click(object sender, eventargs e)     {         try         {             //first create connection string destination database             string connectionstring;             connectionstring = @"my data string - replaced post here";              //open connection destination database;             using (sqlconnection connection =                    new sqlconnection(connectionstring))             {                 connection.open();                  //open bulkcopy connection.                 using (sqlbulkcopy bulkcopy = new sqlbulkcopy(connection))                 {                     //set destination table name                     //to table created.                     bulkcopy.destinationtablename = "dbo.table_1";                      try                     {                         bulkcopy.writetoserver(dtexcelrecords);                     }                     catch (exception ex)                     {                         console.writeline(ex.message);                     }                      connection.close();                 }             }         }         catch (exception ex) {             messagebox.show(ex.message);         }         messagebox.show("finished!");     } 

here how create/populate data table (data table declared globally):

 public void importexcel(string path, string sheetname)     {         var excel = new linqtoexcel.excelqueryfactory(path);         excel.readonly = true;         var companies = in excel.worksheet(sheetname) select a;         var columnnames = excel.getcolumnnames(sheetname);           foreach (var columnname in columnnames)         {             dtexcelrecords.columns.add(columnname);         }         foreach (var row in companies)         {             datarow dr = dtexcelrecords.newrow();             foreach (var columnname in columnnames)             {                 dr[columnname] = row[columnname];             }             dtexcelrecords.rows.add(dr);         }         datagridview1.datasource = dtexcelrecords;     } 

based on question , received answer in comments area problem seems related exception silently caught in block:

catch (exception ex)  {      console.writeline(ex.message);  } 

my suggestion separate db access logic (dal) ui, putting logic in class (usually put in assembly) , have pattern one:

data layer

try {     // db logic fetch } catch (exception exc) {     // log somewhere - nlog 1 way log want - console, db, file - , store important information such timestamp, user, stack trace etc.     // put error in output variable or property } 

ui layer

  • calls data layer
  • if fails, print friendly answer user
  • look in logs actual error

this important separation of concerns , can have exception management.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -