Heim  >  Artikel  >  Backend-Entwicklung  >  Teilen Sie die Lösung für die ungültige Konvertierung von SqlDataReader

Teilen Sie die Lösung für die ungültige Konvertierung von SqlDataReader

零下一度
零下一度Original
2017-06-15 13:40:381228Durchsuche

In diesem Artikel wird hauptsächlich die Lösung für die ungültige angegebene Konvertierung von SqlDataReader vorgestellt. Interessierte Freunde können sich auf

Die Lösung für die ungültige angegebene Konvertierung von SqlDataReader beziehen ist wie folgt

//获取最新显示顺序数据
      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();//关闭

SqlDataReaders eigene GetInt32-Methode (und andere wie GerString usw.)

ruft einfach die entsprechende Methode ab Die DatenbankSpalten vom Datentyp haben nicht die Funktion der Typkonvertierung und können daher nicht auf diese Weise verwendet werden

LösungEs gibt zwei Typen

1. Wenn Sie den Typ int zurückgeben müssen, ist das Feld in der Datenbank als Typ int definiert, dann ist GetInt32 möglich
2 Wenn der Typ int nicht definiert ist Wenn Sie in der Datenbank sind und den Typ int zurückgeben möchten, verwenden Sie einfach zuerst den entsprechenden Typ in der Datenbank, um ihn abzurufen, und konvertieren Sie dann
, z. B. int.Parse(selectunitidread.GetString(0))
Wenn Sie nicht Sie müssen nicht den Typ int zurückgeben, genau wie Sie es oben geschrieben haben, und schließlich in einen String
konvertieren und der Typ in der Datenbank ist varchar, der dem String entspricht. Dann können Sie den folgenden Wert
direkt zuweisen, z. rmoutbackinfo.UnitId = selectunitidread.GetString(0)
ohne Konvertierung in String

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

Das obige ist der detaillierte Inhalt vonTeilen Sie die Lösung für die ungültige Konvertierung von SqlDataReader. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn