2014-04-29 71 views
0

在我的數據庫,從DropDownList的餘項CPVComID的值(如 0,1,2,3)和類似的 顯示dataValueFiled值插入的DropDownList( - 選擇 - ,征服,CBC, Insight Management)。DropDownList的與DataValueField和DataTextField asp.net C#

錯誤消息:

Exception Details: System.ArgumentOutOfRangeException: 'ddlCardCPVComName' has a SelectedValue which is invalid because itdoes not exist in the list of items. Parameter name: value 

ASPX:

<asp:DropDownList ID="ddlCardCPVComName" runat="server" AppendDataBoundItems="True" 
DataSourceID="SqlDSCPVCompanyName" DataTextField="CPVComName" 
dataValueFiled="ddlCardCPVComName" Width="205px" DataValueField="CPVComID"> 
<asp:ListItem Value="0"> -SELECT- </asp:ListItem> 
</asp:DropDownList> 

<asp:SqlDataSource ID="SqlDSCPVCompanyName" runat="server" 
ConnectionString="<%$ ConnectionStrings:OptimaWebCustomerQueryCon %>" 
SelectCommand="SELECT CPVComID, CPVComName FROM DDCPVCompanyName ORDER BY CPVComID"> 
</asp:SqlDataSource> 

代碼背後:

private void getReceeivedCPV() 
     { 
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["OptimaWebCustomerQueryCon"].ConnectionString)) 
      { 
       conn.Open(); 
       string str = @"SELECT CardCPVID, CardID, 
     CardCPVComName, 
     CardCPVSentDate, CardCPVStatus, CardCPVRcevDate, CPVRemarks FROM CC_CardCPV Where CardID LIKE '" + GVCPVReceived.SelectedValue + "'"; 
       using (SqlCommand com = new SqlCommand(str, conn)) 
       { 
        using (SqlDataReader dr = com.ExecuteReader()) 
        { 
         if (dr.Read()) 
         { 

          TextBox1.Text = Convert.ToString(dr[2]); 
          ddlCardCPVComName.SelectedValue = Convert.ToString(dr[2]); 
          txtCardCPVSentDate.Text = Convert.ToDateTime(dr[3]).ToString("dd MMM yyyy"); 
          ddlCardCPVStatus.SelectedItem.Value = Convert.ToString(dr[4]); 
          if (dr[5] != DBNull.Value) 
          { 
           txtCardCPVRcevDate.Text = Convert.ToDateTime(dr[5]).ToString("dd MMM yyyy"); 
          } 
          else 
          { 
           txtCardCPVRcevDate.Text = ""; 
          } 
          txtCPVRemarks.Text = Convert.ToString(dr[6]); 
         } 
        } 
       } 
       conn.Close(); 
      } 
     } 

我應該怎麼做?請建議我。

回答

0

我可以說明爲什麼這種例外arises..In以下行要在值設置爲下拉列表ddlCardCPVComName代碼..

ddlCardCPVComName.SelectedValue = Convert.ToString(dr[2]); 

這裏除了說沒有這樣一個項目在下拉列表ddlCardCPVComName。所以,當你綁定下拉列表ddlCardCPVComName必須檢查 了存在你所要設置的特定物品..

檢查此綁定查詢,並確保所需的項目綁定到數據源..

<asp:SqlDataSource ID="SqlDSCPVCompanyName" runat="server" 
ConnectionString="<%$ ConnectionStrings:OptimaWebCustomerQueryCon %>" 
SelectCommand="SELECT CPVComID, CPVComName FROM DDCPVCompanyName ORDER BY CPVComID"> 
</asp:SqlDataSource> 
0

如果我沒有錯,從你的aspx代碼刪除dataValueFiled =「ddlCardCPVComName」(下拉)和執行。

0

我只是改變「dlCardCPVStatus.SelectedItem.Text = Convert.ToString(dr [4]);」併成功做到這一點

相關問題