const string bopp = "bopp";
        const string cpp = "cpp";
        const string sum = "sum";
        string stest = "sum";
        string Tsql;
        switch (stest)
        {
            case bopp:
                Tsql = "select boppcp,weeks from sto_cc_kc_chart";
                break;
            case cpp:
                Tsql = "select cppcp,weeks from sto_cc_kc_chart";
                break;
            case sum:
                Tsql = "select sumcp,weeks from sto_cc_kc_chart";
                break;
        }
        SqlDataAdapter thisAdapter = new SqlDataAdapter(Tsql, thiscon); 现在的问题是在执行最后一条语句时,提示我局部变量Tsql未赋值!! 求高人指教!

解决方案 »

  1.   

    写上defaultswitch (stest)
    {
        case bopp:
            Tsql = "select boppcp,weeks from sto_cc_kc_chart";
            break;
        case cpp:
            Tsql = "select cppcp,weeks from sto_cc_kc_chart";
            break;
        case sum:
            Tsql = "select sumcp,weeks from sto_cc_kc_chart";
            break;
        default:
            MessageBox.Show(stest.ToString());
            break;
    }
      

  2.   

    定义的时候先赋个空值string Tsql="";
    switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
    default:
         break;
      }
      

  3.   

    定义的时候先赋个空值string Tsql="";
    switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
    default:
      break;
      }
      

  4.   

    const string bopp = "bopp";
      const string cpp = "cpp";
      const string sum = "sum";
      string stest = "sum";
      string Tsql=string.empty;
    这样就可以了
      

  5.   

    const string cpp = "cpp";
      const string sum = "sum";
      string stest = "sum";
      string Tsql="";
    这样写就可以啦!
      

  6.   

    string Tsql;//string Tsql="";
      switch (stest)
      {
      case bopp://你比较的是字符串   case "bopp":
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp://case "cpp";
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum://case "sum";
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
      }
    这样应该就可以了
      

  7.   

    string Tsql;//string Tsql="";
      switch (stest)
      {
      case bopp://你比较的是字符串 case "bopp":
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp://case "cpp":  Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum://case "sum":  Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
      }
    这样应该就可以了
      

  8.   

    主要还是源于对switch的不了解造成的。
    顶1楼
    加上default:默认值
      

  9.   

    你判断的是字符串,怎么case条件没加上引号啊?同时定义字符串要赋初值
      

  10.   

    定义的时候先赋个空值string Tsql="";
      

  11.   

    switch(条件)

       case 1:
       express;
      break;
      case 2:
       express;
     break;
     case 3:
     express;
     break;
    default:
     express;
     break;}
      

  12.   

    当 stest 不等于你上面那些 "bopp";"cpp";"sum";"sum"; 时 Tsql 就没有值啊,所以会报错的!
      

  13.   

    本来就没有赋值switch{}这个语句块和其他语句同级
      

  14.   

    加上
    default:
    Tsql = "sasasa";
    break;
    或者在声明后面赋初始值。因为Tsql在switch之前,只是声明了,尚未赋值。当匹配不到switch里面的条件,Tsql就得不到值,所以会报错。
     
      

  15.   

    如果switch{}语句快前的变量没有赋值,而在switch(){}语句块后要访问该变量,则在switch{}语句快中的任何一个路径中都要对该变量进行赋值操作,否则编译器会报错。如下代码会报错:
    string stest = "sum";
    string Tsql;
    switch (stest)
    {
        case "bopp":
            Tsql = "select boppcp,weeks from sto_cc_kc_chart";
            break;
        case "cpp":
            Tsql = "select cppcp,weeks from sto_cc_kc_chart";
            break;
        case "sum":
            Tsql = "select sumcp,weeks from sto_cc_kc_chart";
            break;
        default:
            break;
    }
    Console.WriteLine(Tsql);
    因为在default这条路径上没有对Tsql进行赋值。
      

  16.   

    const string bopp = "bopp";
      const string cpp = "cpp";
      const string sum = "sum";
      string stest = "sum";
      string Tsql;
      switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
      }if(!String.IsNullOrEmpty(Tsql))
    {
      SqlDataAdapter thisAdapter = new SqlDataAdapter(Tsql, thiscon);  
    }
      

  17.   

    养成一个习惯吧,可能对你有帮助:变量声明的时候赋值。
    哪怕是个null是个0或者别的没有意义的东西。
      

  18.   

    加上Default ,lz还是要养成良好的书写习惯,不要落下语句
      

  19.   

    楼主的hiscon变量定义于何处呢?
      

  20.   

    "现在的问题是在执行最后一条语句时,提示我局部变量Tsql未赋值!!"
    你的问题描述不确切哦,不是执行的时候提示吧,应该是你在编写代码的时候编译器就会提示,你这个编译就不通过哦!
    哦,难道你是动态编译的?
      

  21.   

    switch 
    (
       里面有个default:
       break;
    )这样保证所有情况都处理了
    C# 里面语法检查很严格  如果没有default 前面几项都没有匹配上  就会报异常
      

  22.   

    bopp 这就是对象了。要比较字符串 应该"bopp"
    并且swtich 需要有default case的
      

  23.   

    如果case不到结果你的Tsql不就没有赋值了
      

  24.   

    定义的时候先赋个空值string Tsql="";
    switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
    default:
      break;
      }
      

  25.   

    定义的时候先赋个空值string Tsql="";
    switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
    default:
      break;
      }
      

  26.   

    定义的时候先赋个空值string Tsql="";
    switch (stest)
      {
      case bopp:
      Tsql = "select boppcp,weeks from sto_cc_kc_chart";
      break;
      case cpp:
      Tsql = "select cppcp,weeks from sto_cc_kc_chart";
      break;
      case sum:
      Tsql = "select sumcp,weeks from sto_cc_kc_chart";
      break;
    default:
      break;
      }
      

  27.   

    最好给Tsql初始化一下
    Tsql= String.Empty;
    或者
    Tsql = "";