2012-01-09 111 views
3

我在整個網站搜索了錯誤DataBinding:'System.Char'不包含名稱的屬性

我在綁定下拉列表時遇到此錯誤。

數據綁定: 'System.Char' 不包含名稱爲 「APPRAISER_ID」

這裏是我的代碼屬性:

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服務。

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 2012-01-09 13:22:58

回答

5

的問題是,你的字符串綁定到DataSource

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

和一個字符串沒有財產APPRAISER_ID

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

不是一個好主意,因爲你可以運行到SqlInjection。

+1

注意:「System.Char」錯誤消息的原因是數據源應該是Enumerable。該字符串*是*可枚舉的:它是一個字符列表。而Char沒有那個'Appraiser_id'。 – 2012-01-09 15:29:39

+0

@HansKesting String不僅僅是一個在.NET中的字符或字符數組的列表。 – dknaack 2012-01-09 16:26:31

+0

@dknaack - 不,字符串不是一個字符列表,但它是** IEnumerable ',這是什麼在這裏。 – 2012-01-09 20:45:01

相關問題