i getting data mssql db entity framework using c# , visual studio , importing in mysql db using mysql.data nuget package , c# , visual studio again. if have data without foreing keys ok , import done. here code:
var context = new supermarketschainentities(); var measures = context.measures; var supermarkets = context.supermarkets; var vendors = context.vendors; var expenses = context.expenses; var products = context.products; string myconn = "server=localhost;database=supermarkets_chain;uid=root;pwd=;"; mysqlconnection conn = new mysqlconnection(myconn); conn.open(); //insert measures foreach (var measure in measures) { string insertquery = "insert measures (id, name) values (null, @name)"; mysqlcommand cmd = new mysqlcommand(insertquery, conn); cmd.parameters.addwithvalue("@name", measure.name); cmd.executenonquery(); } but when try import data in table one-to-many relationships , foreign keys:
foreach (var product in products) { string insertquery = "insert products (id, name, price, measure_id, vendor_id) values (null, @name, @price, @measure_id, @vendor_id)"; mysqlcommand cmd = new mysqlcommand(insertquery, conn); cmd.parameters.addwithvalue("@name", product.name); cmd.parameters.addwithvalue("@price", product.price); cmd.parameters.addwithvalue("@measure_id", product.measure); cmd.parameters.addwithvalue("@vendor_id", product.vendor); cmd.executenonquery(); } something goes wrong , following exception:
unhandled exception: mysql.data.mysqlclient.mysqlexception: cannot add or update child row: foreign key constraint fails (`supermarkets_chain`.`products`, c onstraint `fk_products_measures` foreign key (`measure_id`) references `measures ` (`id`) on delete no action on update no action) @ mysql.data.mysqlclient.mysqlstream.readpacket() @ mysql.data.mysqlclient.nativedriver.getresult(int32& affectedrow, int64& nsertedid) @ mysql.data.mysqlclient.driver.getresult(int32 statementid, int32& affected rows, int64& insertedid) @ mysql.data.mysqlclient.driver.nextresult(int32 statementid, boolean force) @ mysql.data.mysqlclient.mysqldatareader.nextresult() @ mysql.data.mysqlclient.mysqlcommand.executereader(commandbehavior behavior ) @ mysql.data.mysqlclient.mysqlcommand.executenonquery() @ sqltomysql.program.main(string[] args) in d:\softuni\databaseapps\teamwork \sqltomysql\sqltomysql\program.cs:line 67 can me handle problem , import data properly. attaching db schema here.
Comments
Post a Comment