sql - C# - SQLite Insufficient parameters supplied to the command error -
this simple, yet can not see error is! parameter not added in query. here code:
sqlitedb db; db = new sqlitedb(config.getmasterusersdb()); datatable masterusers; sqlitecommand query = new sqlitecommand("select username , password , localdb master_users username = @username"); query.parameters.add("@username", combomasterusers.selecteditem.tostring()); masterusers = db.getdatatable(query.commandtext); foreach (datarow r in masterusers.rows) { if (txtpassword.text == r["password"].tostring()) { config.setlocaldb(r["localdb"].tostring()); config.setloggedmasteruser(r["username"].tostring()); this.hide(); formmain formmain = new formmain(); formmain.show(); } } sqlitedb helper class create database connection , retrievals
public datatable getdatatable(string sql) { datatable dt = new datatable(); seek { sqliteconnection cnn = new sqliteconnection(dbconnection); cnn.open(); sqlitecommand mycommand = new sqlitecommand(cnn); mycommand.commandtext = sql; sqlitedatareader reader = mycommand.executereader(); dt.load(reader); reader.close(); cnn.close(); } grab (exception e) { throw new exception(e.message); } homecoming dt; } why insufficient parameters supplied command error? can not see typos either.
you adding parameter first command object (query), create second object (mycommand) without parameters.
you have alter getdatatable add together parameters own object:
... string sql = "select ... username = ?"; db.getdatatable(sql, combomasterusers.selecteditem.tostring()); ... public datatable getdatatable(string sql, params object[] parameters) { ... mycommand.commandtext = sql; foreach (var value in parameters) { var param = mycommand.createparameter(); param.value = value; mycommand.parameters.add(param); } ... c# sql sqlite parameters
No comments:
Post a Comment