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

时间:2015-11-12 21:12:04

标签: c# .net 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。 .Count> 0)导致错误

  

错误16'System.Data.DataSet'不包含的定义   '行'和没有扩展方法'行'接受第一个参数   可以找到类型'System.Data.DataSet'(你错过了使用   指令或程序集   参考?)

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

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

另外,您可以将dt的定义更改为DataTable

答案 1 :(得分:1)

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

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

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

我应该这样做。