专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SQL

存储过程解决思路

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
存储过程
存储过程:
ALTER proc User_Login_1
@UserID nchar(10),
@Password char(20),
@Return int=0 output
as
declare @flag int
select @flag=count(*) from [table] 
where @UserID=name and @Password=password
if @flag>0
begin
  select @Return=1  
end 

连接数据库:
SqlConnection con = dbobj.GetConnection();  
  SqlCommand com = new SqlCommand();
  com.Connection = con;
  con.Open();
  com.CommandType = CommandType.StoredProcedure;
  com.CommandText = "User_Login_1";
  com.Parameters.Add("@UserID", SqlDbType.NChar, 10).Value = user_text.Text.Trim();
  com.Parameters.Add("@Password", SqlDbType.Char, 20).Value = password.Text.Trim();
  com.Parameters.Add("@Return", SqlDbType.Int).Direction =ParameterDirection.Output;  
  com.ExecuteNonQuery();
  int i =Convert.ToInt32(com.Parameters["@Return"].Value); 
  if (i>0)
  {
  Response.Write("<script language=javascript>alert('登陆成功');</script>");
  }
  else
  {
  Response.Write("<script language=javascript>alert('登陆不成功');</script>");
  }
  con.Close();
这里int i =Convert.ToInt32(com.Parameters["@Return"].Value); 为什么会出现对象不能从 DBNull 转换为其他类型的错误?


------解决方案--------------------
空字符串是不能进行类型转换的!!
先给@Return赋默认值,保证@flag=0时也有返回值!!
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: