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
Post a Comment