VB.Net MySQL如何向数据库中插入值

VB.Net MySQL如何向数据库中插入值,mysql,vb.net,Mysql,Vb.net,Pro Devs我正在使用VB.Net和MySQL数据库,我想在我的数据库中插入值。示例:我的数据库中有Admin11的值,但当我插入另一个值Admin11时,我得到一个错误,这是我的代码。顺便说一下,这两个方法在不同的类中 “好的,好的,好的” 这是我检查数据库中是否存在用户名的代码 公共子检查UsernameifExist() 请帮助我,非常感谢。 更改您的查询: Dim qry As String = "INSERT INTO tblUsers (Username,`Password`,`

Pro Devs我正在使用VB.Net和MySQL数据库,我想在我的数据库中插入值。示例:我的数据库中有Admin11的值,但当我插入另一个值Admin11时,我得到一个错误,这是我的代码。顺便说一下,这两个方法在不同的类中

“好的,好的,好的”

这是我检查数据库中是否存在用户名的代码

公共子检查UsernameifExist()

请帮助我,非常感谢。

更改您的查询:

Dim qry As String = "INSERT INTO tblUsers (Username,`Password`,`Level`) VALUES (@User,@Pass,@lvl)"

更改您的查询:

Dim qry As String = "INSERT INTO tblUsers (Username,`Password`,`Level`) VALUES (@User,@Pass,@lvl)"

感谢所有帮助我的人,这些解决了我的问题

CREATE TABLE `pos_db`.`tblForLogin` (
    `Username` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL UNIQUE, 
    `Password` VARCHAR(50) NOT NULL,
    `Level` VARCHAR(50) NOT NULL, 
    PRIMARY KEY(Username)
);

感谢所有帮助我的人,这些解决了我的问题

CREATE TABLE `pos_db`.`tblForLogin` (
    `Username` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL UNIQUE, 
    `Password` VARCHAR(50) NOT NULL,
    `Level` VARCHAR(50) NOT NULL, 
    PRIMARY KEY(Username)
);

您的数据库是什么样子的?数据库中是否使用了主键?是的,先生,用户名是我的主键。但是,当我插入另一个值时,就像我在顶部说明的那样,我得到了一个错误。您不能使用用户名作为主键。添加新值时,主值应自动递增。
count As Integer=Convert.ToInt32(cmd.ExecuteScalar()
失败,因为查询返回的是用户名(即一些文本),而不是数字。更改为
SELECT count(username)
可以完成这项工作。可能与数据库的外观重复?数据库中是否使用了主键?是的,先生,用户名是我的主键。但是,当我插入另一个值时,正如我在顶部所示,我出现了一个错误。您不能将用户名用作主键。添加新值时,主键应自动递增e、
count As Integer=Convert.ToInt32(cmd.ExecuteScalar()
失败,因为查询返回的是用户名(即一些文本),而不是数字。更改为
选择count(用户名)
可以完成这项工作。可能是重复的,谢谢您的帮助,先生。但是它不起作用。呵呵。这是错误,输入字符串的格式不正确。它将Dim计数突出显示为Integer=Convert.ToInt32(cmd.ExecuteScalar())很抱歉,我不明白这个答案的意思。你在引号中加了用户名、密码和级别……但它们都没有出现在你链接到的保留字列表中。@ADyson这个答案添加了反勾号,这是MySql中的转义字符。它假设错误是由关键字用作字段名引起的。@Mary我不是disp我的观点是,在答案中有一个指向保留字列表的链接,但上面的字段名都没有出现在该列表中。如果有人打算使用一些文档来支持他们的答案,那么如果文档中确实包含相关的证据,这将是有意义的。而且链接到官方文档总是更好的不管怎样,umentation(包含密码和级别,列为保留字):谢谢您的帮助,先生。但是它不起作用。呵呵。这是错误输入字符串的格式不正确。它将Dim计数突出显示为Integer=Convert.ToInt32(cmd.ExecuteScalar())很抱歉,我不明白这个答案的意思。你在引号中加了用户名、密码和级别……但它们都没有出现在你链接到的保留字列表中。@ADyson这个答案添加了反勾号,这是MySql中的转义字符。它假设错误是由关键字用作字段名引起的。@Mary我不是disp我的观点是,在答案中有一个指向保留字列表的链接,但上面的字段名都没有出现在该列表中。如果有人打算使用一些文档来支持他们的答案,那么如果文档中确实包含相关的证据,这将是有意义的。而且链接到官方文档总是更好的umentation(不包含作为保留字列出的密码和级别):