c# - How to import Excel file to Database ADO.net -
i tried write code import excel file database using c# , ado.net got code run output wrong.
using excel; using system.io; namespace expperson { public partial class form2 : form { public form2() { initializecomponent(); } private void btnimport_click(object sender, eventargs e) { try { openfiledialog op = new openfiledialog(); op.filter = "excel workbook| *.xls;*.xlsx;*.xlsm"; if (op.showdialog() == dialogresult.cancel) return; filestream stream = new filestream(op.filename, filemode.open); iexceldatareader excelreader = excelreaderfactory.createopenxmlreader(stream); dataset result = excelreader.asdataset(); maamoonkhalidissueentities db = new maamoonkhalidissueentities(); foreach (datatable table in result.tables) { foreach (datarow dr in table.rows) { person addtable = new person() { nname = convert.tostring(dr[0]), ncode = convert.tostring(dr[1]), ntel1 = convert.tostring(dr[2]), ntel2 = convert.tostring(dr[3]), nfax = convert.tostring(dr[4]), nemail = convert.tostring(dr[5]), nadd = convert.tostring(dr[6]) }; } } db.savechanges(); excelreader.close(); stream.close(); messagebox.show("import sucess","good",messageboxbuttons.ok,messageboxicon.hand); } catch (exception ex) { messagebox.show(ex.message, "message", messageboxbuttons.ok, messageboxicon.error); } } } } but there issue code runs without errors data in database isn't right , can't figure out wrong.
you need call db.people.add(addtable); on each iteration of datarow loop.
so:
foreach (datarow dr in table.rows) { person addtable = new person() { nname = convert.tostring(dr[0]), ncode = convert.tostring(dr[1]), ntel1 = convert.tostring(dr[2]), ntel2 = convert.tostring(dr[3]), nfax = convert.tostring(dr[4]), nemail = convert.tostring(dr[5]), nadd = convert.tostring(dr[6]) }; db.people.add(addtable) } otherwise, entity framework doesn't know want them inserted database.
Comments
Post a Comment