Ich habe eine Methode in der Klasse DataBase in App_Code, die ich verwendet, um eine gespeicherte Prozedur für die Anmeldung aufrufen, aber wenn ich den Anruf erhalte ich keinen Fehler, aber meine Anmeldung wird nicht abgeschlossen .So rufen Sie Stored Procedure von App_Code DataBase Klasse
Dies ist die Datenbank-Klasse:
public class DataBaseClass
{
SqlDataAdapter da;
SqlConnection con = new SqlConnection();
SqlCommand cmd = new SqlCommand();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
public DataBaseClass()
{
}
public DataTable CallSP(string UserName, string Password)
{
con = new SqlConnection(@"Data Source=MyServer;Initial Catalog=MyDataBase;Integrated Security=True");
con.Open();
cmd = new SqlCommand("LoginUser", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 20).Value = "UserName";
cmd.Parameters.Add("@Password", SqlDbType.NVarChar, 20).Value = "Password";
da = new SqlDataAdapter(cmd);
da.Fill(dt);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
return dt;
}
Dies ist der Code, den ich für Anmeldung verwendet zu nennen:
DataBaseClass dbClass = new DataBaseClass();
dt = new DataTable();
dt = dbClass.CallSP("UserName", "Password");
if (dt.Rows.Count > 0)
{
boolReturnValue = true;
Session["UserId"] = dt.Rows[0]["Id"].ToString();
string updateLastLogin = "Update [User] SET LastLogin='" + System.DateTime.Now.ToString() + "' where Id='" + Session["UserId"].ToString() + "'";
dbClass.ConnectDataBaseToInsert(updateLastLogin);
}
return boolReturnValue;
}
Dies ist mein Stored Procedure:
CREATE PROCEDURE [dbo].[LoginUser] (
@UserName nvarchar(20),
@Password nvarchar(20)
)
AS
SET NOCOUNT ON;
(
SELECT * FROM [User] WHERE Email = @UserName AND Password = @Password
)
Kann jemand Reproduzieren Sie meinen Code und teilen Sie mir mit, warum mein Login-Anruf nicht funktioniert.
Was ist Ihr Nachrichtenfehler? –
Mit "Login wird nicht abgeschlossen", meinst du "dt.Rows.Count" ist Null? – Crowcoder
Sie codieren die Literalzeichenfolgen "Username" und "Password". Ich nehme an, Sie beabsichtigen dort eine Variable zu verwenden? – Crowcoder