Ich versuche zu überprüfen, ob ein Benutzer in einer Tabelle in SQL-Server existiert. Ich habe Verbindungszeichenfolgen erstellt, um eine Verbindung geöffnet -ExecuteScalar SQLException: skalare Variable nicht deklariert
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();
}
ich diesen Fehler erhalte - eine Ausnahme vom Typ ‚System.Data.SqlClient.SqlException‘ aufgetreten in System.Data.dll wurde aber nicht in Benutzercode behandelt
Zusätzliche Informationen: Muss die Skalarvariable "@UserName" deklarieren.
Die Ausnahme tritt bei der int UserExist = (int)userquery.ExecuteScalar();
Linie auf.
Bitte, wie kann ich das beheben?
ähm ... warum? gibt es einen Grund? Gibt es insbesondere einen Grund, der mit der Frage zusammenhängt? Ich würde ** nicht ** erwarten, dass diese Änderung für das in der Frage gemeldete Problem einen Unterschied macht. –