Maison  >  Article  >  développement back-end  >  Partagez la solution pour la conversion non valide de SqlDataReader

Partagez la solution pour la conversion non valide de SqlDataReader

零下一度
零下一度original
2017-06-15 13:40:381228parcourir

Cet article présente principalement en détail la solution à la conversion spécifiée non valide de SqlDataReader. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à

La solution à la conversion spécifiée non valide de SqlDataReader pour plus de détails. est la suivante

//获取最新显示顺序数据
      string str = string.Format(@"if exists(select ShowOrder from GIS_FuncDefaultLayer where GISFuncId = {0})
                           select max(ShowOrder) as ShowOrder from GIS_FuncDefaultLayer where GISFuncId ={0}
                           else select '0' as ShowOrder", GISFuncId); 
      IDataReader dataReader = helper.ExecuteReader(CommandType.Text, str);
      if (dataReader.Read())//判断当前功能Id下是否有数据
      {
        //读取赋值
        try
        {
          showOrder = dataReader.GetInt32(0);
          
        }
        catch (Exception ex)
        {

          HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(ex.Message) };
          return result;
        }
        
      }
dataReader.Close();//关闭

La méthode GetInt32 de SQLDataReader (et d'autres comme GerString, etc.)

obtient simplement celle correspondante dans la base de donnéesLes colonnes de type de données n'ont pas la fonction de conversion de type, elles ne peuvent donc pas être utilisées de cette manière

SolutionIl existe deux types

1 Si vous devez renvoyer le type int, alors le champ dans la base de données est défini comme type int, alors GetInt32 est réalisable
2. la base de données et que vous souhaitez renvoyer le type int, puis utilisez simplement le type correspondant dans la base de données pour l'obtenir d'abord, puis convertissez
tel que int.Parse(selectunitidread.GetString(0))
Si vous ne le faites pas Je n'ai pas besoin de renvoyer le type int, tout comme ce que vous avez écrit ci-dessus, et enfin Et converti en chaîne
et le type dans la base de données est varchar correspondant à la chaîne, alors vous pouvez directement attribuer la valeur suivante
telle que : rmoutbackinfo.UnitId = selectunitidread.GetString(0)
sans conversion en chaîne

//解决
showOrder=int.Parse(dataReader.GetString(0));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn