以下代码是查询数据库汉字笔画的代码.在用户提交"汉字"数据查询数据库汉字笔画的时候,而数据库内根本没有这个汉字,所以更没有这个汉字的笔画了,请问如何修改后如数据库内没有这个汉字没有这个汉字的笔画跳转到指定页面,谢谢        public int GetWordBh(string Word)
        {
            try
            {
                Database data = new Database();
                SqlParameter[] prams ={ 
                data.MakeInParam("@Word",SqlDbType.NVarChar,10,Word),
                data.MakeOutParam("@WordBh",SqlDbType.Int,3)
                };
                data.RunProc("Cl_GetWordBh", prams);
                int WordBh = (int)prams[1].Value;
                return WordBh;
            }
            catch
            {
                return 0;
            }
        }

解决方案 »

  1.   

    output 是存储过程输出参数值
    返回默认值或判断null
    response.redirect调挑战
      

  2.   

    调试中发现(int)prams[1].Value;这个读取的就是汉字笔画数
      

  3.   

    Cl_GetWordBh里怎么写的
    是否有output 参数值
      

  4.   

    您说的是存储过程吧,我把代码贴上来了if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Cl_GetWordBh]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[Cl_GetWordBh]
    GOSET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GO
    CREATE PROCEDURE Cl_GetWordBh @Word        nvarchar(10),
    @WordBh    int output AS SELECT @WordBh=fantibihua FROM Cl_Hz WHERE jiantizi=@WordGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  5.   

    判断他的返回值,然后用response.redirect貌似就可以了  int i;
    i=GetWordBh("汉字");
    if(i==0||i==null)
    Response.Redirect("要跳转的url");
    else

    仅仅作为思路参考  
      

  6.   

    按照楼上的操作提示
    警告 4 由于“int”类型的值永不等于“int?”类型的“null”,该表达式的结果始终为“false”