【发布时间】:2017-03-23 12:37:02
【问题描述】:
我正在尝试检查用户是否存在于 SQL-Server 的表中。我已经创建了连接字符串,打开了一个连接 -
var settings = ConfigurationManager.ConnectionStrings["BlogEngine"].ConnectionString;
SqlConnection conn = new SqlConnection(settings);
using (conn)
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
var checkUser = "SELECT COUNT(*) FROM dbo.be_Users WHERE UserName = @UserName";
using (SqlCommand userquery = new SqlCommand(checkUser,conn))
{
var parma = userquery.Parameters;
parma.AddWithValue("@UserName", activedirectory.DisplayName);
int UserExist = (int)userquery.ExecuteScalar();
if (UserExist > 0)
{
//Username exist
AuthenticateUser(staffId, password, rmb);
}
else
{
//Username doesn't exist.
var sqlQuery = "INSERT INTO dbo.be_Users (BlogID, UserName, Password, LastLoginTime, EmailAddress, Department)" + "VALUES (@BlogID, @UserName, @Password, @LastLoginTime, @EmailAddress, @Department)";
using (SqlCommand qe = new SqlCommand(sqlQuery))
{
var parms = qe.Parameters;
parms.AddWithValue("@BlogID", Blog.CurrentInstance.Id.ToString());
parms.AddWithValue("@UserName", activedirectory.DisplayName);
parms.AddWithValue("@Password", (passwordFormat == MembershipPasswordFormat.Hashed ? Utils.HashPassword(DEFAULT_PASSWORD) : DEFAULT_PASSWORD));
parms.AddWithValue("@LastLoginTime", DateTime.Now);
parms.AddWithValue("@EmailAddress", DEFAULT_EMAIL);
parms.AddWithValue("@Department", activedirectory.department);
qe.ExecuteNonQuery();
}
AuthenticateUser(staffId, password, rmb);
}
}conn.Close();
}
我不断收到此错误 - System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理
附加信息:必须声明标量变量“@UserName”。
异常发生在int UserExist = (int)userquery.ExecuteScalar(); 行。
请问,我该如何解决?
【问题讨论】:
标签: c# asp.net sql-server