在Windows中执行存储过程 [英] Executing Stored procedure in Windows
本文介绍了在Windows中执行存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在执行登录时用户验证的任务.我面临存储过程的问题.存储过程的输入参数丢失
过程或函数"prcCheckLogin"需要未提供的参数"@Username"."这是抛出异常
存储过程:
I am in the task of doing user validation on login. I am facing an issue with stored procedure. The input parameter for stored procedure is missing
"Procedure or function ''prcCheckLogin'' expects parameter ''@Username'', which was not supplied." this is exception thrown
Stored Procedure:
CREATE PROCEDURE [dbo].[prcCheckLogin]
@Username NVARCHAR(12), @Password NVARCHAR(12)
AS
BEGIN
(SELECT UserInfo.userID,Userinfo.userName,Userinfo.password,Userinfo.userType
FROM [dbo].[UserInfo] WHERE UserInfo.userName = @Username AND UserInfo.[password] = @Password)
END
public class UserADO
{
public User CheckUser(User objUser)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
User objuser = null;
objConnection.GetConnection(); --method to open connection
string sUsername = objUser.Username;
string sPassword = objUser.Password;
try
{
SqlParameter[] sqlparams = {
new SqlParameter("@Username",objUser.Username),
new SqlParameter("@Password",objUser.Password),
};
ds = objConnection.GetDataSet("prcCheckLogin",sqlparams);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
objuser = new User(Convert.ToInt32(ds.Tables[0].Rows[i]["userID"].ToString()), ds.Tables[0].Rows[i]["userName"].ToString(), ds.Tables[0].Rows[i]["password"].ToString(), Convert.ToInt32(ds.Tables[0].Rows[i]["userType"].ToString()));
}
}
}
GetDataSet()
public DataSet GetDataSet(string sql, SqlParameter[] parameters)
{
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand(sql, this.sconnConnection);
foreach (SqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
adapter.SelectCommand = cmd;
adapter.Fill(dataset);
return dataset;
}
帮助我从出错的地方继续进行
在此先感谢
Help me to proceed where I''ve gone wrong
Thanks in advance
推荐答案
您没有在此ds = objConnection.GetDataSet("prcCheckLogin");
中传递SqlParameter 尝试这个.
You are not passing SqlParameter in thisds = objConnection.GetDataSet("prcCheckLogin");
Try this.
ds = objConnection.GetDataSet("prcCheckLogin", sqlparams);
0)在我看来,您没有将参数传递给GetDataSet()
.
1)您的代码看起来有些古怪.例如,您有一个try
而没有catch
.
0) It looks to me like you''re not passing the parameters toGetDataSet()
.
1) Your code looks a bit wonky. For instance, you have atry
with nocatch
.
您未传递@Username值的意思是
objUser.Username = Txtusername.Text;
bjUser.Password = Txtpassword.Text;
首先传递值,然后才执行.
Your not passing @Username value means
objUser.Username = Txtusername.Text;
bjUser.Password = Txtpassword.Text;
frst u pass the values then only it will execute.
这篇关于在Windows中执行存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文