我希望用户输入文本框并在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'(你错过了使用 指令或程序集 参考?)
如何解决此问题?
答案 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...
}
我应该这样做。