如何使用MYSQL在C#中插入、删除、选择和更新datagridview中的值
下面是使用datagridview将值插入mysql数据库的代码。 但是selectcommand正在工作。由于我收到错误声明“列'username'不能为null”,所以它没有发生 如果使用ms access数据库,则不会弹出此错误。 有人能帮我吗。有没有其他方法可以做到这一点如何使用MYSQL在C#中插入、删除、选择和更新datagridview中的值,c#,mysql,datagridview,C#,Mysql,Datagridview,下面是使用datagridview将值插入mysql数据库的代码。 但是selectcommand正在工作。由于我收到错误声明“列'username'不能为null”,所以它没有发生 如果使用ms access数据库,则不会弹出此错误。 有人能帮我吗。有没有其他方法可以做到这一点 我认为您需要更改添加到insert命令的参数的名称,以匹配insert SQL语句中指定的名称 尝试: 我很不确定,但是mysql不是使用带“?”-synatx的编号参数,还是使用带“:”-语法的命名参数,而不是语
我认为您需要更改添加到insert命令的参数的名称,以匹配insert SQL语句中指定的名称 尝试:
我很不确定,但是mysql不是使用带“?”-synatx的编号参数,还是使用带“:”-语法的命名参数,而不是语法处的(mssql) 比如:
MySqlCommand insertcommand = new MySqlCommand("insert into user(username,password) values(?, ?)", conn);
insertcommand.Parameters.Add(1, MySqlDbType.VarChar,50,"username");
insertcommand.Parameters.Add(2, MySqlDbType.VarChar, 50, "password");
或
使用datagrid(vb.net)在mysql中更新时遇到类似问题。解决方法是:
Dim cmb As New MySqlCommandBuilder(datGrid)
Me.datGrid.Update(datSet, "mysqlTableToUpdate")
嘿,谢谢你的回答。你完全正确。这只是一个小的语法错误。“:”生成错误。“?”很好。第二个代码段不起作用。这有点奇怪:这表明可以使用前缀为“@”的命名参数,就像dariom的anwer一样。
MySqlCommand insertcommand = new MySqlCommand("insert into user(username,password) values(?, ?)", conn);
insertcommand.Parameters.Add(1, MySqlDbType.VarChar,50,"username");
insertcommand.Parameters.Add(2, MySqlDbType.VarChar, 50, "password");
MySqlCommand insertcommand = new MySqlCommand("insert into user(username,password) values(:username, :pass)", conn);
insertcommand.Parameters.Add(":username", MySqlDbType.VarChar,50,"username");
insertcommand.Parameters.Add(":pass", MySqlDbType.VarChar, 50, "password");
Dim cmb As New MySqlCommandBuilder(datGrid)
Me.datGrid.Update(datSet, "mysqlTableToUpdate")