空数据表异常

时间:2015-03-19 05:41:15

标签: c# datatable null oledbexception

我试图检查DataTable对象是否为null,但只要DataTable为null,我的程序就会一直给我一个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时会抛出该异常。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个..

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

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

另外请验证SQL select查询。