Sql查询参数。执行查询时不会读取参数
问题描述:
我在c#中的sql查询有问题,基本上它是带参数的内联查询,但是当我运行它时,它告诉我参数1或参数2不存在Sql查询参数。执行查询时不会读取参数
这里宣布在页面的顶部我的查询作为市民:
public const string InsertStmtUsersTable = "insert into Users (username, password, email, userTypeID, memberID, CM7Register) " +
"Values(@username, @password, @email, @userTypeID, @memberID,@CM7Register); select @@identity";
这是我分配的参数的代码,我知道我有问题,所以我两次分配PARAMS:
Username =(cmd.Parameters["@username"].Value = row["username"].ToString()) as string;
cmd.Parameters["@username"].Value = row["username"].ToString();
1 methopd它会调用这个查询,并试图插入到表中,这里是代码:
Result = Convert.ToInt32(SqlHelper.ExecuteScalar(con, CommandType.Text,InsertStmtUsersTable));
确切的错误信息是:必须声明变量“@用户名”。 难道这代码是一个问题,因为以前所有的编码在这个using语句声明的,除了查询的声明,这里使用的语句:
using (SqlCommand cmd = new SqlCommand(InsertStmtUsersTable, con))
答
这只是形形色色的丑恶。这可能是简单了很多(虽然我不知道什么提供SQLHelper呢。?
using(SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand command = new SqlCommand(InsertStmtUsersTable, conn);
command.CommandType = CommandType.Text;
command.Parameters.Add(new SqlParameter("username", userNameString));
command.Parameters.Add(new SqlParameter("password", passwordString));
command.Parameters.Add(new SqlParameter("email", emailString));
command.Parameters.Add(new SqlParameter("userTypeId", userTypeId));
command.Parameters.Add(new SqlParameter("memberId", memberId));
// Rest of your Parameters here
var result = (int)command.ExecuteScalar();
}
+0
SqlHelper类是一个实用程序类,可用于在SQL Server数据库中执行命令。您可以在这里了解更多信息: http ://forums.asp.net/t/941983.aspx – Developer 2010-04-23 19:55:32
我没有看到CMD是如何在提供SQLHelper使用的关系是什么 – 2010-04-23 19:44:55
遐我刚刚意识到提供SQLHelper代码为调用另一个类来执行,所以我更改了代码,取出了sqlhelper,现在它运行正常 – Developer 2010-04-29 20:20:59