过程或函数'AdminLogin'需要参数'@Admin_Username',这是未提供的。 [英] Procedure or function 'AdminLogin' expects parameter '@Admin_Username', which was not supplied.
本文介绍了过程或函数'AdminLogin'需要参数'@Admin_Username',这是未提供的。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的商店程序
USE [STTKDevelopers]
GO
/ * *****对象:StoredProcedure [ dbo]。[AdminLogin]脚本日期:06/20/2013 12:12:22 ****** /
SET < span class =code-sdkkeyword> ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER 程序 [dbo]。[AdminLogin]
@ Admin_Username nvarchar ( 10 ),
@ Admin_Password nvarchar ( 10 )
AS
SELECT Admin_Username,Admin_Password
FROM ADMINISTRATOR
WHERE ADMINISTRATOR.Admin_Username LIKE @ Admin_Username AND ADMINISTRATOR.Admin_Password = @ Admin_Password AND Active = ' 是'
这是我的代码
受保护 void login_Authenticate( object sender,AuthenticateEventArgs e)
{
using (HostingEnvironment.Impersonate())
{
string username = loginDetails.UserName;
string password = loginDetails.Password;
string s;
s = WebConfigurationManager.ConnectionStrings [ ConnString]。ConnectionString;
SqlConnection con = new SqlConnection(s);
con.Open();
// string sqlUserName;
// sqlUserName =SELECT Admin_Username,Admin_Password FROM ADMINISTRATOR WHERE Admin_Username ='+ username +'AND Admin_Password ='+ pwd +';
// SqlCommand cmd = new SqlCommand(sqlUserName,con);
SqlCommand cmd = new SqlCommand( AdminLogin,con);
cmd.CommandType = CommandType.StoredProcedure;
string CurrentName;
CurrentName =( string )cmd.ExecuteScalar();
if (CurrentName!= null )
{
会话[ UserAuthentication] = username;
Session.Timeout = 1 ;
Response.Redirect( 〜/ Admin / Default.aspx);
}
else
{
会话[ UserAuthentication] = ;
}
}
}
当我调试我得到这个错误程序或功能'AdminLogin'期望参数'@Admin_Username',这是没有提供。
解决方案
< blockquote>是的,这个例外很明显。在 login_Authenticate
函数中,您正在调用相同的存储过程 AdminLogin
,该过程需要参数( @Admin_Username 和 @Admin_Password )未提供。您需要在传递登录
功能时传递这两个参数。
试试这段代码:
SqlCommand cmd = new SqlCommand( AdminLogin,con);
cmd.CommandType = CommandType.StoredProcedure;
// 添加所需参数
cmd.Parameters.AddWithValue( @ Admin_Username,YourUserName); // 传递用户名
cmd.Parameters.AddWithValue( @Admin_Password,YourPassword); // 传递密码
string CurrentName;
CurrentName =( string )cmd.ExecuteScalar();
你需要传递参数
cmd.Parameters.AddWithValue( @ Admin_Username,用户名);
cmd.Parameters.AddWithValue( @ Admin_Password,密码);
以下$
cmd.CommandType = CommandType.StoredProcedure;
在没有@ for parapater的情况下尝试。
here is my store procedure
USE [STTKDevelopers]
GO
/****** Object: StoredProcedure [dbo].[AdminLogin] Script Date: 06/20/2013 12:12:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AdminLogin]
@Admin_Username nvarchar(10),
@Admin_Password nvarchar(10)
AS
SELECT Admin_Username, Admin_Password
FROM ADMINISTRATOR
WHERE ADMINISTRATOR.Admin_Username LIKE @Admin_Username AND ADMINISTRATOR.Admin_Password = @Admin_Password AND Active = 'Yes'
Here is my code
protected void login_Authenticate(object sender, AuthenticateEventArgs e)
{
using (HostingEnvironment.Impersonate())
{
string username = loginDetails.UserName;
string password = loginDetails.Password;
string s;
s = WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
SqlConnection con = new SqlConnection(s);
con.Open();
//string sqlUserName;
//sqlUserName = "SELECT Admin_Username, Admin_Password FROM ADMINISTRATOR WHERE Admin_Username ='" + username + "' AND Admin_Password ='" + pwd + "'";
// SqlCommand cmd = new SqlCommand(sqlUserName, con);
SqlCommand cmd = new SqlCommand("AdminLogin", con);
cmd.CommandType = CommandType.StoredProcedure;
string CurrentName;
CurrentName = (string)cmd.ExecuteScalar();
if (CurrentName != null)
{
Session["UserAuthentication"] = username;
Session.Timeout = 1;
Response.Redirect("~/Admin/Default.aspx");
}
else
{
Session["UserAuthentication"] = "";
}
}
}
when i debug i get this error "Procedure or function 'AdminLogin' expects parameter '@Admin_Username', which was not supplied.
"
解决方案
Yes, this exception is obvious. Inlogin_Authenticate
function, you are calling the same stored procedure "AdminLogin
" and that procedure expects the parameters(@Admin_Username and @Admin_Password) which is not supplied. You need to pass both parameters as you are passing inLogin
function.
[Edit 1]
Try this code:
SqlCommand cmd = new SqlCommand("AdminLogin", con); cmd.CommandType = CommandType.StoredProcedure; //Adding the required parameters cmd.Parameters.AddWithValue("@Admin_Username", YourUserName);//Pass username cmd.Parameters.AddWithValue("@Admin_Password", YourPassword);//pass password string CurrentName; CurrentName = (string)cmd.ExecuteScalar();
--Amit
You need to pass parameters as
cmd.Parameters.AddWithValue("@Admin_Username", username ); cmd.Parameters.AddWithValue("@Admin_Password", password);
below the line
cmd.CommandType = CommandType.StoredProcedure;
Try without the @ for paramater.
这篇关于过程或函数'AdminLogin'需要参数'@Admin_Username',这是未提供的。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文