dt.Rows.Count 如何从文本框搜索并在gridview中显示

dt.Rows.Count How to search from the textbox and show in the gridview

我希望用户在文本框中输入内容并在 gridview 上显示结果

我的密码是

protected void Button1_Click(object sender, EventArgs e)
        {
            String Artists = System.Configuration.ConfigurationManager.ConnectionStrings["FleetManagementConnectionString"].ConnectionString;
            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(Artists);

            DataSet dt = new DataSet();
            String Query = "Select AlbumName from [KazuTest].[dbo].[View_OneAlbums]  where AlbumName LIKE '%' '" + TextBox1.Text + "' '%'";
            SqlDataAdapter da;

            SqlCommand cmd = new SqlCommand(Query,con);
            con.Open();
            da = new SqlDataAdapter(cmd);

            dt.Clear();
            da.Fill(dt);

           if (dt.Rows.Count > 0)
        {
            gvSubDetails.DataSource = dt;
            gvSubDetails.DataBind();
        }
        else
        {
            gvSubDetails.DataBind();
            Label1.Text = "No Records Found";
        }
        con.Close();
    }

但错误显示

(dt.Rows.Count > 0) 导致错误

Error 16 'System.Data.DataSet' does not contain a definition for 'Rows' and no extension method 'Rows' accepting a first argument of type 'System.Data.DataSet' could be found (are you missing a using directive or an assembly reference?)

我该如何解决这个问题?

DataSets 不包含行。它们包含表格。最有可能的是,您应该使用 dt.Tables[0].Rows.Count

或者,您可以将 dt 的定义更改为 DataTable

将 DataTable 分配给 GridView,然后检查行:

dt.Clear();
da.Fill(dt);
gvSubDetails.DataSource = dt;
gvSubDetails.DataBind();

if (gvSubDetails.RowCount > 0)  //Gridview uses RowCount, not Rows.Count
{
    //ToDo...
}

我相信这应该可以。