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();。此外,非查询命令不返回任何结果。确保您的查询确实返回结果。

于 2012-08-13T11:15:46.940 回答
0

嗨,请试试这个它为我的 gridview 工作

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 回答