Web服务中的Web方法 [英] Web Method in Webservice

查看:144
本文介绍了Web服务中的Web方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码:



  public   string  LoginHandler( string  strEmail_Id, string  strPassword, out   int  strID, out   string  strName, out   string  strRole, out   int  Status_Parameter, out   string  Status_Msg)
{
DbCommand objlogin = null ;

try
{
objConn = dbkhorizo​​n.CreateConnection();
if (objConn.State == ConnectionState.Closed)
{
objConn.Open();
}
objlogin = objConn.CreateCommand();
string strlgn = usp_login_main;
objlogin.CommandType = CommandType.StoredProcedure;
objlogin = dbkhorizo​​n.GetStoredProcCommand(strlgn);


dbkhorizo​​n.AddInParameter(objlogin, @ email_id ,DbType。 String ,strEmail_Id.Trim());
dbkhorizo​​n.AddInParameter(objlogin, @ password,DbType。 String ,strPassword.Trim());

dbkhorizo​​n.AddOutParameter(objlogin, @ ID,DbType。< span class =code-sdkkeyword> Int32
3000 );
dbkhorizo​​n.AddOutParameter(objlogin,<跨度类= 代码串> <跨度类= 代码串 > @的User_Name,的DbType。<跨度类= code-sdkkeyword> String , 100 );
dbkhorizo​​n.AddOutParameter(objlogin,<跨度类= 代码串> <跨度类= 代码串 > @作用,的DbType。<跨度类= code-sdkkeyword> String , 100 );
dbkhorizo​​n.AddOutParameter(objlogin,<跨度类= 代码串> <跨度类= 代码串 > @ errordesc,的DbType。<跨度类= code-sdkkeyword> String , 200 );

DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds = dbkhorizo​​n.ExecuteDataSet(objlogin);
dt = ds.Tables [ 0 ];

if (dt.Rows.Count == 0
{
Status_Parameter = 0 ;
Status_Msg = LOGIN FAILED;
}
其他
{
Status_Parameter = 1 ;
Status_Msg = LOGIN SUCCESS;
}

strID = Convert.ToInt32(objlogin.Parameters [ @ID 。]值);
strName =(objlogin.Parameters [ @ User_Name]。Value).ToString( )。修剪();
strRole =(objlogin.Parameters [ @ role]。Value).ToString( )。修剪();

}
catch (例外情况)
{
抛出 ex;
}
最后
{
if (objConn .State == ConnectionState.Open)
{
objConn.Close();
objConn.Dispose();
dbkhorizo​​n = null ;
}
}

return Status_Msg;
}



收到错误,因为无法将对象从DBNull转换为其他类型!(在行strID中)

我检查了我的存储过程输出也得到了整数值。

解决方案

嗨Riyaz,



你确定你从SP获得了一些价值吗?您是否验证了指定的列名是否正确,即ID?



请再次检查验证并告知我并提供完整的异常详细信息以便正确理解。

My Code:

public string LoginHandler(string strEmail_Id, string strPassword,  out int strID, out string strName, out string strRole, out int Status_Parameter, out string Status_Msg)
 {
     DbCommand objlogin = null;

     try
     {
         objConn = dbkhorizon.CreateConnection();
         if (objConn.State == ConnectionState.Closed)
         {
             objConn.Open();
         }
         objlogin = objConn.CreateCommand();
         string strlgn = "usp_login_main";
         objlogin.CommandType = CommandType.StoredProcedure;
         objlogin = dbkhorizon.GetStoredProcCommand(strlgn);


         dbkhorizon.AddInParameter(objlogin, "@email_id", DbType.String, strEmail_Id.Trim());
         dbkhorizon.AddInParameter(objlogin, "@password", DbType.String, strPassword.Trim());

         dbkhorizon.AddOutParameter(objlogin, "@ID", DbType.Int32, 3000);
         dbkhorizon.AddOutParameter(objlogin, "@User_Name", DbType.String, 100);
         dbkhorizon.AddOutParameter(objlogin, "@role", DbType.String, 100);
         dbkhorizon.AddOutParameter(objlogin, "@errordesc", DbType.String, 200);

         DataSet ds = new DataSet();
         DataTable dt = new DataTable();
         ds = dbkhorizon.ExecuteDataSet(objlogin);
         dt = ds.Tables[0];

         if (dt.Rows.Count == 0)
         {
             Status_Parameter = 0;
             Status_Msg = "LOGIN FAILED";
         }
         else
         {
             Status_Parameter = 1;
             Status_Msg = "LOGIN SUCCESS";
         }

         strID = Convert.ToInt32(objlogin.Parameters["@ID"].Value);
         strName = (objlogin.Parameters["@User_Name"].Value).ToString().Trim();
         strRole = (objlogin.Parameters["@role"].Value).ToString().Trim();

     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         if (objConn.State == ConnectionState.Open)
         {
             objConn.Close();
             objConn.Dispose();
             dbkhorizon = null;
         }
     }

     return Status_Msg;
 }


getting error as object cannot be cast from DBNull to other types!(in the line strID)
I checked my Stored Procedure output also i got the integer value.

解决方案

Hi Riyaz,

Are you sure you are getting some value from SP? Did you verify the specified column name is correct i.e., ID?

Please check verify again and let me know and provide the full exception details to understand it properly.


这篇关于Web服务中的Web方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆