2016-12-14 27 views
-2

私はドロップダウンリストを持っています。リストは決して静的ではないので、リスト内の項目の数は常に異なっています。インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。パラメータ名:indexドロップダウンリスト

<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %> " SelectCommand="SELECT * FROM TABLE WHERE STATUS = 'done' "></asp:SqlDataSource> 

私は存在しないドロップダウンリストのインデックスにアクセスしようとしていることがわかります。存在しないインデックスを選択することを避けるために離れていますか?

private DataTable test() 
{ 
    DataTable dt = new DataTable(); 
    SqlDataAdapter Adpt; 

    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString)) 
    { 
     SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE WHERE [email protected]", con); 
     cmd.Parameters.AddWithValue("@id", ddlsubnum.Items[0].Text); 
     Adpt = new SqlDataAdapter(cmd); 
     new SqlDataAdapter(cmd).Fill(dt); 
    } 
    Chart1.Series["Series1"].YValueMembers = "recs"; 
    Chart1.Series["Series1"].XValueMember = "date"; 
    Chart1.Series["Series1"].XValueType = ChartValueType.DateTime; 
    Chart1.Series["Series1"].YValueType = ChartValueType.Int32; 

    return dt; 
} 

private DataTable test2() 
{ 
    DataTable dt2 = new DataTable(); 
    SqlDataAdapter Adpt; 

    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString)) 
    { 
     SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE WHERE [email protected]", con); 
     cmd.Parameters.AddWithValue("@id", ddlsubnum.Items[1].Text); 
     Adpt = new SqlDataAdapter(cmd); 
     new SqlDataAdapter(cmd).Fill(dt2); 
    } 
    Chart2.Series["Series1"].YValueMembers = "recs"; 
    Chart2.Series["Series1"].XValueMember = "date"; 
    Chart2.Series["Series1"].XValueType = ChartValueType.DateTime; 
    Chart2.Series["Series1"].YValueType = ChartValueType.Int32; 

    return dt2; 
} 

私はこれをボタンクリックイベントで実行しています。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    { 
     DataTable dt = this.test(); 
     Chart1.DataSource = dt; 
     Chart1.DataBind(); 
    } 

    { 
     DataTable dt2 = this.test2(); 
     Chart2.DataSource = dt2; 
     Chart2.DataBind(); 
    } 
} 
+1

何ですか?エラーが発生している行はどこですか? – itsme86

+0

cmd.Parameters.AddWithValue( "@ id"、ddlsubnum.Items [1] .Text); –

+1

SQLクエリにユーザーが選択したものを入力しようとしていますが、その時点でリストは空ですので、エラーが表示されますか?それですか?リストが空の場合、選択されたものではなくSQL照会にどのようなものを入れるべきですか? –

答えて

2

我々はここで何かが欠けているように私はあなたができることを期待どのように取得しない

string forQRY = ddlsubnum.Items.Count > 0 ? ddlsubnum.Items[0].Text : "";//if the list has items, populate index 0 from list, otherwise empty string"" 
cmd.Parameters.AddWithValue("@id", forQRY); 

...だから私はこの時点で提案することができ、すべてがこれです...らしいです存在しないものを選択してください...

+0

存在しないインデックスを選択しないようにしたいと思いました。あなたの答えは助けになりました。ありがとう。 –

関連する問題

 関連する問題