この記事は主にSqlDataReaderの指定された変換が無効な場合の解決策を詳しく紹介します。興味のある方は参考にしてください。
SqlDataReaderの指定された変換が無効な場合の解決策は次のとおりです。
//获取最新显示顺序数据 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();//关闭
はデータベース内の対応するデータ型の列を取得するだけであり、型変換の機能を持たないため、このように使用します
解決策2つのタイプがあります
1. int型を返す必要がある場合、データベース内のフィールドがint型として定義されている場合、GetInt32が可能です
上で書いたように int 型を返す必要はなく、最後に string に変換します
そしてデータベース内の型は string に対応する varchar である場合、次の値を直接割り当てることができます
例: rmoutbackinfo.UnitId = selectunitidread.GetString (0)
文字列に変換せず
//解决 showOrder=int.Parse(dataReader.GetString(0));
以上がSqlDataReader で指定された無効な変換に対する完璧なソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。