【问题标题】:Conditional statement in dataGridView Search [duplicate]dataGridView 搜索中的条件语句 [重复]
【发布时间】:2019-12-31 01:46:05
【问题描述】:

我有一个 dataGridView,它填充了从 button_Click 上的查询返回的数据。如果查询没有返回结果,我想显示一个这样说的 MessageBox。

有没有办法检查dataGridView是否为空?

 private void SrchONeg_Click(object sender, EventArgs e)
        {
            SqlConnection cs = new SqlConnection(@"Data Source=DESKTOP-112OILD\SQLEXPRESS;Initial Catalog=DDK;Integrated Security=True");
            String query = "SELECT * FROM Davaoci WHERE DatumPoslednjegDavanja >= DATEADD(month, CASE WHEN Pol = 'M' THEN -3 ELSE -4 END, GETDATE()) AND KrvnaGrupa = 'ONeg' ORDER BY DatumPoslednjegDavanja ASC";
            SqlCommand SearchONeg = new SqlCommand(query, cs);
            SqlDataAdapter SearchONegDA = new SqlDataAdapter(SearchONeg);
            DataTable SearchONegDT = new DataTable();
            SearchONegDA.Fill(SearchONegDT);
            DgPretraga.DataSource = SearchONegDT;
        }

【问题讨论】:

    标签: c# sql visual-studio winforms


    【解决方案1】:

    如果 DataTable 本身没有填充,为什么还要让它尝试填充您的 DataGridView?

    if(SearchONegDT.Rows.Count > 0)
    {
     DgPretraga.DataSource = SearchONegDT;
    }
    

    这样,您甚至可以在尝试填充 datagridview 之前检查您的数据是否存在。

    if(SearchONegDT.Rows.Count > 0)
    {
     DgPretraga.DataSource = SearchONegDT;
    }
    else 
    {
     // Your Message
    }
    

    【讨论】:

    • 我在哪里将它合并到我的代码中?
    • 将其放入您尝试设置 DgPretraga.DataSource = SearchONegDT; 的按钮单击功能中暂时。
    【解决方案2】:

    您可以通过查看其中的行数来检查DataGridView 是否为空,如下所示:

    if (dataGridView.Rows != null && dataGridView.Rows.Count == 0)
    {
        //empty
    }
    

    还要确保将 AllowUserToAddRows 设置为 false,否则此方法可能会失败。

    DataGridView Docs

    【讨论】:

    • 如果您能帮助我了解如何将其合并到我的代码中? #noob 谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2021-05-10
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多