Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Gridview中显示未找到记录消息_C#_Asp.net_Datagridview - Fatal编程技术网

C# 如何在Gridview中显示未找到记录消息

C# 如何在Gridview中显示未找到记录消息,c#,asp.net,datagridview,C#,Asp.net,Datagridview,我搜索了上面的问题,得到了很多答案,但没有一个答案对我有帮助。因此提出这个问题 我有一个有两个日期的gridview 从 到 当我选择两个日期时,若两个日期之间的数据在数据库中可用,那个么它将显示在gridview上。如果数据不可用,则我想在标签上显示一条消息,即“未找到任何记录” 这是我的密码 myConn.Open(); SqlCommand cmd = new SqlCommand(@"select User_id , LoginDate from LoginLog where Log

我搜索了上面的问题,得到了很多答案,但没有一个答案对我有帮助。因此提出这个问题

我有一个有两个日期的gridview

  • 当我选择两个日期时,若两个日期之间的数据在数据库中可用,那个么它将显示在gridview上。如果数据不可用,则我想在
    标签上显示一条消息,即“未找到任何记录”

    这是我的密码

     myConn.Open();
     SqlCommand cmd = new SqlCommand(@"select User_id , LoginDate from LoginLog where LoginDate between ('" + TextBox1.Text + "') and ('" + TextBox2.Text + "')", myConn);
     DataTable dt = new DataTable();
     SqlDataAdapter sda = new SqlDataAdapter(cmd);
     sda.Fill(dt);
     GridView1.DataSource = dt;
    
     if (GridView1.Rows.Count > 0)
     {
         GridView1.DataBind();
     }
     else
     {
         Lab4.Text = "No Records Found ";
     }
    
     myConn.Close();
    

    将其添加到gridview控件中

    EmptyDataText="No Records Found"
    

    只需检查DataTable是否包含值

     myConn.Open();
    SqlCommand cmd = new SqlCommand(@"select User_id , LoginDate from LoginLog where LoginDate between
                                     ('" + TextBox1.Text + "') and ('" + TextBox2.Text + "')", myConn);
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    sda.Fill(dt);
    GridView1.DataSource = dt;
    if (dt.Rows.Count > 0)
    {
        GridView1.DataBind();
    }
    else
    {
        Lab4.Text = "No Records Found ";
    }
    myConn.Close();
    

    希望这有帮助。问候:)

    将此添加到您的ASPX文件中:

    <asp:GridView ID="GridView1" runat="server" CellPadding="5" BorderStyle="Ridge" ShowHeaderWhenEmpty="true" EmptyDataText="No Records Found." EmptyDataRowStyle-ForeColor="Red">
    
    myConn.Open();
    SqlCommand cmd = new SqlCommand(@"select User_id , LoginDate from LoginLog where LoginDate between
                                     ('" + TextBox1.Text + "') and ('" + TextBox2.Text + "')", myConn);
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    sda.Fill(dt);
    GridView1.DataSource = dt;
    if (dt.Rows.Count > 0)
    {
        GridView1.DataBind();
    }
    myConn.Close();
    
    或者您可以看到此链接: 试试这个方法

    if (dt.Rows.Count > 0)
    {
        GridView1.DataBind();
    }
    else
    {
        Lab4.Text = "No Records Found ";
    }
    myConn.Close();
    
    private void Retrieve()
            {
                  if(loadPositions() != null){
                    dgvEmployeePositions.DataSource = loadPositions();
                  }
                  else{
                      Lab4.Text = "No Records Found ";
                  }
    
    
            }
    
     private DataTable loadPositions()
            {
                DataTable dt = new DataTable();;
                myConn.Open(); 
                String q = "your query here";
                MySqlCommand cmd = new MySqlCommand(q, connectionString);
                MySqlDataReader r = cmd.ExecuteReader();
    
                if(r.hasRows){
                    dt.Load(r); 
                    return dt;          
                }
                else{
                    return null;
                }               
    
    
            }
    

    。但是您必须为此调用
    DataBind()
    ,所以删除
    GridView1.Rows.Count>0
    我有一个标签,它的id是Lab4,我想在该标签上显示消息,但标签在gridview之外我尝试了此代码,但现在我得到了正确的标签输出和gridview完整数据,即使数据在两个日期之间也不可用。请尝试(dt.Rows.Count>0){GridView1.DataBind();}或者{Lab4.Text=“未找到记录”;GridView1.visible=false;}现在,即使数据库中存在数据,Gridview也完全禁用。现在标签工作正常了,我要做的是通过SqlDaraReader检索数据。编写单独的函数来检索数据并返回数据表。将该数据表分配给datagridview.Source。改为使用dataGridView.dataBind使用该方法检查我的新答案