我收到错误:
DataBinding:'System.Data.DataRowView'不包含属性 名称为'system_name'。
我有一个下拉列表,从 SYSTEMS 表中获取数据。代码:
string queryStringForSystem = "SELECT system_name FROM ptdd.systems where system_id=(select system_id from ptdd.parameters where parameter_id='" + txtParameterId.Text + "')";
string odbccon = "Driver={IBM DB2 ODBC DRIVER};database=dd_unify;hostname=x.x.x.x;protocol=TCPIP;port=50000;uid=xxxx;pwd=xxxx";
using (System.Data.Odbc.OdbcConnection odbcConnection = new System.Data.Odbc.OdbcConnection(odbccon))
{
System.Data.Odbc.OdbcDataAdapter adapter = new System.Data.Odbc.OdbcDataAdapter(queryStringForSrdRefId, odbccon);
System.Data.DataSet dataSet = new System.Data.DataSet();
try
{
odbcConnection.Open();
adapter.Fill(dataSet);
ddrSystem.DataSource = dataSet.Tables[0];
ddrSystem.DataTextField = "system_name";
ddrSystem.DataValueField = "system_id";
ddrSystem.DataBind();
}
catch (Exception e1)
{
Console.WriteLine(e1.Message);
}
另外,我已经提到了datatextfield和datavalue字段。
<asp:DropDownList ID="ddrSystem" runat="server" DataTextField="system_name" DataValueField="system_id">
</asp:DropDownList>
虽然,这是一个小问题。无法解决它。
答案 0 :(得分:0)
尝试从
更改查询SELECT system_name FROM ...
到
SELECT system_id,system_name FROM ...
原因:您的代码正在查找system_id,但该字段不在查询中。
ddrSystem.DataTextField =“system_name”;
ddrSystem.DataValueField =“ system_id ”;