调用时报错:“未将对象引用设置到对象的实例。”public static string GetCityNameForIp(string ipnum)
{
  return DbHelper.ExecuteScalar(CommandType.Text, "select num1 from cz_ip where num1=" + ipnum).ToString();
}
用以下语句调用时,出错
string _data = Bll.DataGetManage.GetCityNameForIp("4294967250");但是将数字改为小一点,譬如下面的,又可以
string _data = Bll.DataGetManage.GetCityNameForIp("429496"); 数据库cz_ip num1 为bitint 类型,不知道为什么会报错,
在SQL管理器里执行 select num1 from cz_ip where num1=4294967250  是可以的。  请求帮助!!!

解决方案 »

  1.   

    return DbHelper.ExecuteScalar(CommandType.Text, "select num1 from cz_ip where num1=" + ipnum).ToString();改成return DbHelper.ExecuteScalar(CommandType.Text, "select num1 from cz_ip where num1='" + ipnum+"'").ToString();
      

  2.   

    1,查询出错你后面又加一个.ToString()转换当然报空指针! ipnum这个变量改成数字型的不行吗?
    2,或者你传的参数的值的字符太长了
      

  3.   

    1,查询出错你后面又加一个.ToString()转换当然报空指针! ipnum这个变量改成数字型的不行吗?
    2,或者你传的参数的值的字符太长了
      

  4.   


    加 与不加 都是一样的,还是报错的。
     前面我说了, 将数据 改小一点 譬如将 4294967250 改成 429496 就可以通过。 
    我怀疑是不是 C#的数据类型与 SQL数据类型转换有问题。  请大侠们求证
      

  5.   


    加 与不加 都是一样的,还是报错的。
     前面我说了, 将数据 改小一点 譬如将 4294967250 改成 429496 就可以通过。 
    我怀疑是不是 C#的数据类型与 SQL数据类型转换有问题。  请大侠们求证
      

  6.   

    2楼加 与不加 都是一样的,还是报错的。
     前面我说了, 将数据 改小一点 譬如将 4294967250 改成 429496 就可以通过。 
    我怀疑是不是 C#的数据类型与 SQL数据类型转换有问题。  请大侠们求证