0

ASP.NET ページに単純な検索ページがあり、SQL クエリに基づいてデータセットを入力しています。

            con.Open();    
            cmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds = new DataSet();
            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    da.Fill(ds, "Emp");
                    GridView1.DataSource = ds;
                    GridView1.DataBind();
                }

            }
            else
            {
                Label2.Text = "Data not found";

            }
            con.Close();

しかし、検索項目が存在するのに、「データが見つかりません」と出てしまうのですが、なぜ if 文が実行されないのでしょうか?

4

4 に答える 4

1

他の人が示唆したように、次のようにコード行を移動する必要があります。

        con.Open();    
        cmd.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        DataSet ds = new DataSet();
        da.Fill(ds, "Emp");   // SEE THIS LINE!
        if (ds.Tables.Count > 0)
        {
            if (ds.Tables[0].Rows.Count > 0)
            {

                GridView1.DataSource = ds;
                GridView1.DataBind();
                Label2.Text = string.Empty;
            }

        }
        else
        {
            GridView1.DataSource = null;
            GridView1.DataBind();
            Label2.Text = "Data not found";

        }
        con.Close();
于 2012-08-13T11:25:14.733 に答える
0

あなたが行方不明です

dataadapter.fill(ds)
于 2012-08-13T11:15:20.700 に答える
0

データセットを埋める前にクエリを実行しているため、おそらく機能していません。cmd.ExecuteNonQuery(); を削除してみてください。また、Non Query コマンドは結果を返しません。クエリが実際に結果を返すことを確認してください。

于 2012-08-13T11:15:46.940 に答える
0

こんにちは、これを試してみてください。私のグリッドビューで動作しています

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConectionString"].ConnectionString);

            SqlCommand cmd = new SqlCommand("Select * from Tbl_Employee", con);

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            DataSet ds = new DataSet();
            da.Fill(ds);
            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    gv1.DataSource = ds.Tables[0];
                    gv1.DataBind();
                }
            }
于 2012-08-13T11:47:57.817 に答える