0

データベース テーブルleave_rec(name,date1,leave,ltype)aDropdown listと aがありgridviewます。

only(e.g.rohan leuva,2/28/2013,full,casual)ドロップダウンリストで月(2月など)を選択すると、グリッドビューに2月のすべてのテーブル値が表示され、月= 2(2月)のレコードが表示されるようにしたいと考えています。

この問題を克服するにはどうすればよいですか?gridview試してみましたが、現時点ではすべての値しか表示できません。どんな助けでも大いに感謝します。

SqlConnection conn = new SqlConnection();
conn.ConnectionString=System.Configuration.ConfigurationManager.ConnectionStrings["leave"].ConnectionString;
conn.Open();
SqlCommand cmd = new SqlCommand("select date1,leave,ltype from leave_rec where name='" + DropDownList1.SelectedValue + "'", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();

上記のコードはdate1, leave, ltypefor を表示しますdropdownlist1.selectedvalue.。そのため、2 番目の 2 月を選択すると、グリッドは 2 月のみの dropdownlist1.selectedvalue の値を表示する必要があります。

4

4 に答える 4

1

まず、クエリは次のようにする必要があります。

select date1, leave, ltype from leave_rec where MONTH(date1) = 2 // February

次に、それをコードに統合します。

SqlCommand cmd = new SqlCommand("select date1, leave, ltype from leave_rec where MONTH(date1) = @p1", conn);
cmd.Parameters.Add(new SqlParameter("p1", combo.SelectedKey));

SQL インジェクションを回避するために、文字列連結の代わりにパラメーターを使用してください。次の例を参照してください: http://www.dotnetperls.com/sqlparameter

(もちろん、「combo.SelectedKey」には独自のコントロール名を使用してください)

于 2013-03-04T11:37:57.983 に答える
0

次に、データセットを DataTable に変換します - dt.Filter=monthName.toString() でフィルター処理し、GridView にバインドします - dt.DefaultView;

于 2013-03-04T12:24:42.810 に答える
0

query に問題があると思います。 name の代わりに date1 と書く必要があります

SqlCommand cmd = new SqlCommand("select date1, leave, ltype from leave_rec where MONTH(date1) ='" + DropDownList1.SelectedValue + "'", conn);
于 2013-03-04T11:44:59.203 に答える
-1

@Saurabh に同意し、型とモデリングの使用を強制するために Linq とストアド プロシージャの使用を検討してください。

于 2013-03-04T11:34:47.303 に答える