我在演员表面做错了吗? [英] Am i doing wrong in cast

查看:70
本文介绍了我在演员表面做错了吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

- 前端场景



文本框就在那里。在搜索我放入文本框的价值的基础上,我将在gridview中获得,,,,



.... aspx场景...... 。

--front end scenario

text box is there. on basis of search of value that i put in text box ,,,i will get that in gridview,,,,

....aspx scenario....

<asp:ObjectDataSource ID="objUserClaimList_Approval" runat="server" SelectMethod="GetAllRecordsForClaimApproval"
                       OnSelecting="objUserClaimList_Approval_Selecting" TypeName="TMS.Business.INT_New_Claim"
                       OnUpdating="objUserClaimList_Approval_Updating" UpdateMethod="UpdateForClaimApproval">

...... ....









- 搜索按钮< br $> b $ b

..........




--on search button

 protected void btnSearch_Click(object sender, EventArgs e)
        {
            try
            {
                    gvClaimApproval.DataSourceID = "objUserClaimList_Approval";
                    objUserClaimList_Approval.Select();
                    gvClaimApproval.DataBind();
                    gvClaimApproval.PageIndex = 0;
             }
            catch (Exception ex)
            {
                LogError.WriteError(ex);
            }
            finally
            {

            }
        }

----debug and reach objUserClaimList_Approval.Select(); f11

protected void objUserClaimList_Approval_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            try
            {
                e.InputParameters["PageNo"] = 1;
                e.InputParameters["PageSize"] = 10000;
                TMS.API.Reimbursement.VO_Reimbursement_SC objClaimListApproval_SC = new    TMS.API.Reimbursement.VO_Reimbursement_SC();
                objClaimListApproval_SC.Hub_ID = ddl_Hub.SelectedItem.Value;
                objClaimListApproval_SC.UserID = txtUserID.Text;
                objClaimListApproval_SC.Claim_amount = Convert.ToDecimal(txt_Claim_Amount.Text);

              ...
              ...
           

---defined property in presentation layer
 public decimal Claim_amount
        {
            get;
            set;
        }

--get the xml and pass it to stored procedure...my concern is claim amount which is 100-<vo_reimbursement_sc><company_id>1</company_id><pagetodisplay>1</pagetodisplay><recordsperpage>10000</recordsperpage><claim_amount>100</claim_amount><hub_id>136</hub_id><userid /><reim_token_id /><firstname /><lastname /><route_id /><status>-1</status></vo_reimbursement_sc>







------------------- ---- SQL --------------------------- ----------------




-----------------------sql-------------------------------------------

ALTER PROCEDURE [dbo].[USP_USER_CLAIM_APPROVAL_LIST]                  
(            
 @XML_PARAM XML,            
 @TotalRecords int Output            
)            
AS  
BEGIN             
SET NOCOUNT ON               
             
 DECLARE @PageToDisplay   int,            
   @RecordsPerPage       int,            
   @Reim_Token_ID    int,            
   @FromDate     datetime,              
   @ToDate      datetime,            
   @UserID Varchar(100),        
   @FirstName varchar(50),        
   @LastName Varchar(50),        
   @Status int,        
   @Company_ID     int,            
   @Hub_ID   int,        
   @Route_ID int,  
   @Own_Side  bit,            
   @Approval_Status varchar(10),  
   @DocHandle            int,            
   @sSQL  varchar(max) ,
   @Claim_amount decimal(18,2)     



EXEC sp_xml_preparedocument @DocHandle OUTPUT, @XML_PARAM               
 SELECT  @PageToDisplay       = PageToDisplay,            
   @RecordsPerPage      = RecordsPerPage,            
   @Reim_Token_ID  = Reim_Token_ID,             
   @FromDate          =FromDate,             
   @ToDate  = ToDate,          
@UserID=UserID,        
@FirstName=FirstName,        
@LastName=LastName,        
@Status=Status,        
@Company_ID=Company_ID,        
 @Route_ID=Route_ID,           
   @Hub_ID   = Hub_ID,  
   @Own_Side=Own_Side ,  
   @Approval_Status=Approval_Status ,
   @Claim_amount=Claim_amount            
 FROM OPENXML (@DocHandle, '/VO_Reimbursement_SC', 2)                 
 WITH (            
  PageToDisplay         int,             
  RecordsPerPage        int,            
     Reim_Token_ID    int,            
  FromDate     datetime,              
  ToDate      datetime,            
  UserID varchar(100),        
FirstName varchar(50),        
LastName varchar(50),        
Status int,          
  Company_ID     int,    
Route_ID INT,            
  Hub_ID                int      ,  
  Own_Side bit,  
  Approval_Status varchar(10),
  Claim_amount decimal(18,2) 
   )             
            
CREATE TABLE #tmpUserClaimApprovalList           
(            
Reim_Token_ID     int,        
EmpName varchar(200),        
Facility_Name varchar(500),              
Route_ID int,          
Description varchar(2000),        
ShiftDate varchar(30),        
Reason varchar(100),        
Claim_Amount decimal(18,2),        
Issued_Amount decimal(18,2),    
Approver_Name varchar(250),        
Remarks varchar(5000),    
EMPCLAIMHISTORY varchar(max),  
Print_Status bit ,  
Own_Side bit,  
Approval_Status varchar(10) ,  
Created_By varchar(250),

        
)            
            
CREATE TABLE #User_ClaimApprovalList_Temp            
(            
   Reim_Token_ID     int,         
EmpName varchar(200),        
Facility_Name varchar(500),         
   Route_ID   varchar(20),            
   Description varchar(2000),        
ShiftDate varchar(30),        
Reason varchar(100),        
Claim_Amount decimal(18,2),        
Issued_Amount decimal(18,2),    
Approver_Name varchar(250),        
Remarks Varchar(5000),    
  Print_Status bit,    
  EMPCLAIMHISTORY varchar(max),  
  Own_Side bit,  
  Approval_Status varchar(10),  
   Created_By varchar(250),  
   RowNumber     int,            
   TotalRecords    int       
)             
BEGIN           
BEGIN TRY          
BEGIN TRANSACTION          
--print @Status  
IF (@Status=1 or @Status=2 or @Status=-1)  
BEGIN   
--print 1         
SET @sSQL ='INSERT INTO #tmpUserClaimApprovalList
(Reim_Token_ID,
EmpName,
Facility_Name,
Route_ID,
Description,
ShiftDate,
Reason,
Claim_Amount,
Issued_Amount,
Approver_name,
Remarks,
Print_Status,
EMPCLAIMHISTORY,
Own_Side,
Approval_Status,
Created_By)            
SELECT    
 tbl_Reim_Detail.Reim_Token_ID,
 tbl_User_master.UserID+'+'''<br>'''+'+ tbl_User_master.First_Name+'' '+'''+ tbl_user_master.Last_Name+'''+''' as EmpName ,
 Facility_Name +'+'''<hr><span style="background-color:Gray">'''+'+ isnull((select top 1 addr
ess_detail from tbl_route_Detail where route_id=isnull(tbl_Reim_Token.Route_ID,'''') and userid=isnull(tbl_User_master.UserID,'''')),'''')+'''+''' as Facility_Name,        
   tbl_Reim_Token.Route_ID, tbl_Reim_Token.Description,convert(varchar,convert(datetime,tbl_Reim_Token.Shift_Date,110),103)+'+''':'''+'+ Shift_Time as ShiftDate,
tbl_ReasonForReim.ReasonForReim_Value,        
isnull(tbl_Reim_Detail.Claim_Amount,0),
isnull(tbl_Reim_Detail.Issued_Amount,0) As Issued_Amount,
(select RD.Approved_By+'+'''<br>'''+'+ UM.First_Name+'' ''+ UM.Last_Name from tbl_reim_detail RD inner join tbl_user_master UM on UM.userId=RD.Approved_By wher
e RD.Reim_token_id=tbl_Reim_Detail.Reim_Token_ID) as Approver,        
tbl_reim_detail.Remarks,  
Print_Status, (select [dbo].[fnc_CreateHTML_Employee_Claim_History](isnull(tbl_User_master.UserID,''0''),tbl_reim_token.Route_ID)) as EMPCLAIMHISTORY,Own_Side, case Reim_Status_ID when 1 then ''Pending'' when 2 then ''Approved'' when 3 then ''Inactive'' w
hen 4 then ''Delete'' when 5 then ''Referback'' end,  
(select RT.Created_By+'+'''<br>'''+'+ UM.First_Name+'' ''+ UM.Last_Name from tbl_Reim_Token RT inner join tbl_user_master UM on UM.userId=RT.Created_By where RT.Reim_token_id=tbl_Reim_Detail.Reim_Token_ID) as Created_By   FROM         tbl_ReasonForReim wi
th (nolock) INNER JOIN        
                      tbl_Reim_Detail with (nolock) ON tbl_ReasonForReim.ReasonForReim_ID = tbl_Reim_Detail.Reason_ID         
inner join tbl_Reim_Token with (nolock)on tbl_reim_token.Reim_token_id=tbl_reim_detail.Reim_token_id        
inner join tbl_Route_header RH with (nolock) on RH.Route_id=tbl_reim_token.Route_id  
inner join tbl_facility with (nolock) on tbl_facility.Facility_ID=tbl_Reim_Detail.Facility_ID        
inner join tbl_user_master with (nolock) on tbl_user_master.userid=tbl_reim_detail.userid     
where tbl_Reim_Detail.Inactive= 0 '        
  
if((@FromDate<>'') and (@ToDate<>''))        
BEGIN        
 SET @sSQL=@sSQL+' AND RH.Appointment_Datetime between convert(datetime,'''+CAST(@FromDate AS VARCHAR)+''',101) And convert(datetime,'''+CAST(@ToDate As Varchar)+''',101)'            
    END        
            
    If (@Hub_ID <>-1)            
  BEGIN            
   SET @sSQL = @sSQL + ' AND tbl_Reim_token.Hub_ID = ' + cast( @Hub_ID as varchar)            
                     
 END            
   
 if(@status= -1)  
 BEGIN  
 SET @sSQL=@sSQL + ' AND tbl_Reim_Detail.Reim_Status_id in(1,2,3,4,5)'  
 END  
  else if (@status=2)    --Approved  
BEGIN        
 SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Reim_Status_id  =2 '  --Approved by transport         
END         
else if (@status=1)--Pending  
BEGIN  
SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Reim_Status_id in(1,5) '  --Pending for Approval         
END  
  
 If (@Company_ID <> '')            
  BEGIN            
   SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Company_ID = ' + cast(@Company_ID as varchar)            
                     
 END            
            
 If (@Reim_Token_ID <>'')            
  BEGIN            
   SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.REIM_TOKEN_ID = ' + cast(@Reim_Token_ID as varchar)            
                     
 END            
            
 If ((@Route_ID <> '') and (len(@Route_ID)>0))    
  BEGIN            
   SET @sSQL = @sSQL + ' AND tbl_Reim_Token.ROUTE_ID ='+'''' +  cast(@ROUTE_ID as varchar)+''''          
                     
 END         
 If (@UserID <> '')            
  BEGIN            
   SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.UserID ='+'''' +  cast(@UserID as varchar)+''''          
                     
 END         
If (@FirstName<> '')              
  BEGIN              
   SET @sSQL = @sSQL + ' AND tbl_User_Master.First_Name LIKE ''%' + @FirstName+'%'''           
                    
   END              
 If (@LastName<> '')              
  BEGIN              
   SET @sSQL = @sSQL + ' AND tbl_User_Master.Last_Name LIKE ''%' + @LastName + '%'''            
                    
   END                   
          
          
 If (@Claim_amount<> '' and @Claim_amount<>'0')              
  BEGIN              
   SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Claim_Amount ='+'' +  @Claim_amount +''     
                    
   END   
 


----sp continues,,,,but am i doing right,,,, the above step ------
---- SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Claim_Amount ='+'' +  @Claim_amount +''     





因为我在页面上收到错误...如果我调试我得到了意外的数据库错误。,,,

--im声明

- @Claim_amount十进制(18,2)以上



----------------------- - - - - - - - - - 摘要 - - - - - - - - - - - - - - - - ------------------------

1)财产



because i am getting error on page...if i debug i get as unexpected database error.,,,
--i m declaring
-- @Claim_amount decimal(18,2) above

-----------------------------------------summary-------------------------------------------------------
1)property

public decimal Claim_amount
       {
           get;
           set;
       }



2)getting the value in front end to pass as xml


2)getting the value in front end to pass as xml

TMS.API.Reimbursement.VO_Reimbursement_SC objClaimListApproval_SC = new TMS.API.Reimbursement.VO_Reimbursement_SC();
 objClaimListApproval_SC.Claim_amount = Convert.ToDecimal(txt_Claim_Amount.Text);





3)sql variable declare



3)sql variable declare

@Claim_amount decimal(18,2)  above 







4)sql dynamic sql...claim amount is optional....if its not there then display all records...else






4)sql dynamic sql...claim amount is optional....if its not there then display all records...else

If (@Claim_amount<> '' and @Claim_amount<>'0')
 BEGIN
  SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Claim_Amount ='+'' +  @Claim_amount +''

  END



---------------------------------------help me--------------------------------------------------

--i am getting error here,,,

objClaimListApproval_SC.Claim_amount = Convert.ToDecimal(txt_Claim_Amount.Text);



-----------input string not in correct format...

in presentation layer i made it to string....



and changed here



objClaimListApproval_SC.Claim_amount = txt_Claim_Amount.Text;



----now if i dont put 100 as claim amount,,,i dont get error and records with 100 is not displaying



--if i put nothing in text box...i get error on page...



--i get

Error while fetching data from the database. Unexpected Database Error.


---------------------------------------help me--------------------------------------------------
--i am getting error here,,,
objClaimListApproval_SC.Claim_amount = Convert.ToDecimal(txt_Claim_Amount.Text);

-----------input string not in correct format...
in presentation layer i made it to string....

and changed here

objClaimListApproval_SC.Claim_amount = txt_Claim_Amount.Text;

----now if i dont put 100 as claim amount,,,i dont get error and records with 100 is not displaying

--if i put nothing in text box...i get error on page...

--i get
Error while fetching data from the database. Unexpected Database Error.

推荐答案

If (@Claim_amount<> '' and @Claim_amount<>'0')
 BEGIN
  SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Claim_Amount ='+'' +  @Claim_amount +''

  END





If @Claim_Amount is indeed a number, why are you surrounding it with quotes? Try





If @Claim_Amount is indeed a number, why are you surrounding it with quotes? Try

If (@Claim_amount<> '' and @Claim_amount<>'0')
 BEGIN
  SET @sSQL = @sSQL + ' AND tbl_Reim_Detail.Claim_Amount =' + @Claim_amount
  END





If that doesn’t work, reply with the final value of @sSQL before you execute it.



Hogan



If that doesn't work, reply with the final value of @sSQL before you execute it.

Hogan


这篇关于我在演员表面做错了吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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