Asp.net 使用AddWithValue插入-引发错误?
你好。第一个代码段将文本框值插入数据库,效果良好:Asp.net 使用AddWithValue插入-引发错误?,asp.net,sql,sql-server,database,vb.net,Asp.net,Sql,Sql Server,Database,Vb.net,你好。第一个代码段将文本框值插入数据库,效果良好: Public子插入表(ByVal用户名作为字符串,ByVal密码作为字符串) 将adp设置为新的SqlCommand(“插入[users_tbl](usr_用户名,usr_密码)值(“&username&”,“&password&”),con) adp.ExecuteNonQuery() 端接头 相反,我想使用AddWithValue,所以我尝试这样做: Public子插入表(ByVal用户名作为字符串,ByVal密码作为字符串) 使用ad
Public子插入表(ByVal用户名作为字符串,ByVal密码作为字符串)
将adp设置为新的SqlCommand(“插入[users_tbl](usr_用户名,usr_密码)值(“&username&”,“&password&”),con)
adp.ExecuteNonQuery()
端接头
相反,我想使用AddWithValue,所以我尝试这样做:
Public子插入表(ByVal用户名作为字符串,ByVal密码作为字符串)
使用adp作为新的SqlCommand(“插入[users_tbl](usr_username,usr_password)值(@username,@password)”,con)
adp.Parameters.AddWithValue(“@usr\u username”,username)
adp.Parameters.AddWithValue(“@usr\u password”,password)
adp.ExecuteNonQuery()
终端使用
端接头
但不幸的是,它抛出了一个错误:
异常详细信息:System.Data.SqlClient.SqlException:必须声明标量变量“@username”。
为什么会出错?我的
AddWithValue
代码段可能是错误的吗
谢谢。您的查询需要以下两个变量:
@username, @password
但您可以传递不同名称的变量:
adp.Parameters.AddWithValue("@usr_username", username)
adp.Parameters.AddWithValue("@usr_password", password)
参数名称需要匹配。大概是这样的:
adp.Parameters.AddWithValue("@username", username)
adp.Parameters.AddWithValue("@password", password)
参数名称不同,这适用于:
adp.Parameters.AddWithValue("@username", username)
adp.Parameters.AddWithValue("@password", password)
或者将sql从
INSERT INTO [users_tbl] (usr_username, usr_password) values (@username, @password)
到
我自己没有使用这个方法,但是看起来你应该使用
AddWithValue(“@username”,username)
而不是“@user\u username”
谢谢你,没错。无论如何,我不知道为什么要添加很多参数,这让事情变得复杂。谢谢你,蒂姆,这很有帮助。我不确定哪一个答案应该被接受,我希望两个答案都能被接受。谢谢你,大卫,这很有帮助。我不确定应该将哪个答案设置为已接受,我希望我可以将两者都设置为已接受。
INSERT INTO [users_tbl] (usr_username, usr_password) values (@usr_username, @usr_password)