Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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# 空数据表异常_C#_Datatable_Null_Oledbexception - Fatal编程技术网

C# 空数据表异常

C# 空数据表异常,c#,datatable,null,oledbexception,C#,Datatable,Null,Oledbexception,我试图检查DataTable对象是否为null,但每当DataTable为null时,我的程序总是给我一个OLEDBEException 我有这个方法来设置数据表 public DataTable setUpDataTable(String sql) { String connString = connDel; using (OleDbConnection conn = new OleDbConnection(connString)) {

我试图检查DataTable对象是否为null,但每当DataTable为null时,我的程序总是给我一个OLEDBEException

我有这个方法来设置数据表

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 duplicates = main.setUpDataTable(sql);

if (duplicates != null)
            return false;
程序根本无法访问if语句,但在初始化DataTable对象时抛出异常。该方法在DataTable中有内容时工作,但在为null时抛出异常。如何修复此问题?

试试这个

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

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

另外,请验证SQL选择查询

当它填充setUpDataTable中的DataTable时仍会崩溃。如果SQL语句有助于房间号是一个字符串,那么下面是我对该SQL语句的理解:从[DELIVERY Database]+中选择日期、建筑、[Room Number]、设备、[START TIME]、[END TIME],其中DATE=+DATE.toString/dd/yyyyy+和BUILDING='+BUILDING+'和[Room Number]='+Room+'和设备='+EQUIPMENT+'和[开始时间]=+START.ToStringMM/dd/yyyy+和[结束时间]=+END.ToStringMM/dd/yyy+