【发布时间】:2013-11-26 05:12:06
【问题描述】:
我目前遇到了一个我正在尝试解决的问题。我只是尝试在 C# 的帮助下访问数据库并插入一些值
我尝试(工作)的事情
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES ('abc', 'abc', 'abc', 'abc')";
插入了新行,一切正常,现在我尝试使用变量插入一行:
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES (@id, @username, @password, @email)";
command.Parameters.AddWithValue("@id","abc")
command.Parameters.AddWithValue("@username","abc")
command.Parameters.AddWithValue("@password","abc")
command.Parameters.AddWithValue("@email","abc")
command.ExecuteNonQuery();
不起作用,没有插入任何值。我又尝试了一件事
command.Parameters.AddWithValue("@id", SqlDbType.NChar);
command.Parameters["@id"].Value = "abc";
command.Parameters.AddWithValue("@username", SqlDbType.NChar);
command.Parameters["@username"].Value = "abc";
command.Parameters.AddWithValue("@password", SqlDbType.NChar);
command.Parameters["@password"].Value = "abc";
command.Parameters.AddWithValue("@email", SqlDbType.NChar);
command.Parameters["@email"].Value = "abc";
command.ExecuteNonQuery();
谁能告诉我我做错了什么?
亲切的问候
编辑:
在另一行中,我正在创建一个新的 SQL 命令
var cmd = new SqlCommand(query, connection);
仍然无法正常工作,我在上面的代码中找不到任何错误。
【问题讨论】:
-
你在哪里设置
command.CommandText? -
您是否尝试在不带@ 的情况下添加参数(在Parameters.Add 中)?例如。
command.Parameters.AddWithValue("id","abc") -
^ 他说你需要
command.CommandText = query否则你的查询根本与命令无关 -
您说的是
@password- 但您的意思是@saltedPasswordHash,对吗? ;p -
DB 的错误信息是什么?恕我直言,您具有主唯一键,并且已经设置了具有此值的行。 Sou 尝试将 id 更改为 'abc' 以外的另一个字符串
标签: c# sql sql-server-express