0

我正在尝试检查 DataTable 对象是否为空,但只要 DataTable 为空,我的程序就会不断给我一个 OleDBException。

我有这个方法来设置 DataTable

public DataTable setUpDataTable(String sql)
    {
        String connString = connDel;

        using (OleDbConnection conn = new OleDbConnection(connString))
        {
            OleDbCommand cmd = new OleDbCommand(sql, conn);

            try
            {
                conn.Open();
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show(ex.Message);
            }
            DataTable delTable = new DataTable();
            OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
            adapter.Fill(delTable);
            return delTable;

        }
    }

这里是我调用该方法来初始化 DataTable 对象的地方(原始方法在另一个类中)。我想看看这个 DataTable 是否为空。

DataTable duplicates = main.setUpDataTable(sql);

if (duplicates != null)
            return false;

该程序根本没有进入 if 语句,而是在 DataTable 对象的初始化时引发异常。该方法在 DataTable 中有内容时有效,但在为 null 时抛出异常。我怎样才能解决这个问题?

4

1 回答 1

0

尝试这个..

如果没有记录匹配,您将获得一个空的 DataTable,因此您可以检查返回的记录数:

if (duplicates != null && duplicates .Rows.Count > 0)
    return false;

另请验证 SQL 选择查询。

于 2015-03-19T05:45:01.870 回答