2017-04-23 13 views
0

私はテーブルを持っていて、それを初期化するクラスを書きました。そこにはクラスの一部があります。行の指定されたキャストは無効です

this.semester = new TSemester((short)v[0]); 
this.course = (int)v[1]; 
this.xGroup = (byte)v[2]; 
this.xType = (byte)v[3]; 
this.subject = (int)v[4]; 
this.form = (byte)v[5]; 
this.stdCount = (int)v[6]; 
this.point = (int)v[7]; 
this.pointMax = (int)v[8]; 
this.badCount = (int)v[9]; 
this.cDate = new TDate((int)v[10]); 
this.remark = (string)v[11]; 
this.options = (int)v[12]; 

私は、クエリを使用してクラスを埋めるためにしようと..:this.xGroup =(バイト)V [2]。私はエラー指定されたキャストは有効な クエリではありません持っているは次のようになります。それはアプリのコード内で直接バイトとしてキャストすることはできませんので

select Semester,0,0,0,Subject,0,sum(StdCount),avg(point) 
,avg(pointMax),sum(badcount),13940101,'',0 from EvlClass inner join members 
on members.srl = Subject where Semester = 13951 and XType=1 and Subject 
in(select Srl from Members where Unit in (1101))group by 
unit,Semester,Subject 

答えて

3

あなたのクエリがゼロの整数リテラルを返しています。バイトリテラル0x00CAST(0 AS tinyint)を返すか、Convert.ToByte((Int32)v[2]);を使用してコード内の整数値をバイトに変換する必要があります。他のバイト列と同じです。

関連する問題