2012-01-09 20 views
3

エラーがウェブサイト全体で検索されましたDataBinding: 'System.Char'には名前が付いたプロパティが含まれていません

ドロップダウンリストをバインドする際にこのエラーが発生します。

データバインディング:

DataSet DSEmployee = new DataSet(); 
DSEmployee = ws_service.GetReportingDtl(user); 
ddlEmployee.DataTextField = "APPRAISER_ID"; 
ddlEmployee.DataValueField = "APPRAISER_ID"; 
ddlEmployee.DataSource = DSEmployee.Tables[0].DefaultView.ToString(); 
ddlEmployee.DataBind(); 

そして、私のWebサービスで: 'のSystem.Char' の名前とプロパティが含まれていません "APPRAISER_ID"

は、ここに私のコードです。

string strQ = "select employee_id,appraiser_id from kirti_pms_reporting where appraiser_id='" + varAppraiserId.ToString() + "'"; 

ドロップダウンリストの私のインラインコードは、私がここに逃した何

<asp:DropDownList ID="ddlEmployee" runat="server" AutoPostBack="true" CssClass="vlu"> 

のですか?同じコードが別のaspxページで正常に動作します。

+3

あなたはSQLインジェクションの脆弱性があります。 – SLaks

答えて

5

問題は、あなたのDataSource

ddlEmployee.DataSource = DSEmployee.Tables[0].DefaultView.ToString(); 

と文字列に文字列をバインドするプロパティAPPRAISER_IDを持っていないということです。

SqlInjectionを実行できるので、これは良い考えではありません。

+1

注: 'System.Char'エラーメッセージの理由は、データソースが列挙可能であることです。その文字列*は*列挙可能です:それは文字のリストです。そしてCharにはその「Appraiser_id」がありません。 –

+0

@ HansKesting文字列は、.NETのcharまたはcharの配列の単なるリストではありません。 – dknaack

+0

@dknaack - いいえ、文字列は文字のリストではありませんが、**は** IEnumerable です。これはここで重要です。 –

関連する問題