2

ここで、チェックボックスリストの選択に従ってグリッドビューをバインドしようとしました。実行時に空白のページしか表示されません。誰が間違いを特定できますか?

protected void Button1_Click(object sender, EventArgs e)
{
String query = "Select Proj_id,Proj_name,Front_end,Back_end from Proj_details where Front_end = 'Android'";
String[] frontend ={ "Android", "Asp", "Asp.net", "C#.net", "J2EE", "Java", "Matlab", "NS2", "PHP", "VB", "VB.net" };
try
{
for (int i = 0; i <= CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected)
query = query.Insert(query.Length, frontend[i] + "','");
}

con.Open();
query = query.Remove(query.Length - 1);
query = query.Remove(query.Length - 1);
query = query.Insert(query.Length, ")");
SqlDataAdapter sqlada = new SqlDataAdapter(query, con);
DataSet ds = new DataSet();
sqlada.Fill(ds, "Proj_details");


gv_search_project.DataSource = ds.Tables[0];
gv_search_project.DataBind();



}
catch (Exception ex)
{

}
finally
{

Label1.Text = query.ToString();
}

} 
4

3 に答える 3

2

ここでアレイから出ます:

for (int i = 0; i <= CheckBoxList1.Items.Count; i++)
{
   if (CheckBoxList1.Items[i].Selected)
      query = query.Insert(query.Length, frontend[i] + "','");
}

交換する必要があります:

i <= CheckBoxList1.Items.Count

と:

i < CheckBoxList1.Items.Count
于 2012-08-16T13:08:26.497 に答える
0

追加Front_endの値を追加してクエリを作成していますが、追加する基本クエリには次のような where 句があります。

where Front_end = 'Android'

したがって、(コードを正しく読んだ場合)結果のクエリは(たとえば)次のようになります。

Select Proj_id,Proj_name,Front_end,Back_end 
from Proj_details 
where Front_end = 'Android'Android','C#.net','Matlab','VB')

クエリから始めるには、単に壊れました。INそして第二に、あなたが意図したのは句を持つことだったと思います:

String query = "Select Proj_id,Proj_name,Front_end,Back_end from Proj_details where Front_end in ('Android','";

これは、 vsに関するAmiram Korachのメモと相まって、コードが機能するはずです。ただし、常に「Android」が含まれます(最初の試みもそうでした)。<<=

ただし、空の catch 句を変更してください。

catch (Exception ex)               
{               

}

すべての例外を飲み込んでいなかったら、おそらく自分で問題を見つけていたでしょう。

于 2012-08-16T13:13:56.097 に答える
0
gv_search_project.DataSource = ds.Tables["Proj_details"];
于 2012-08-16T12:59:43.437 に答える