C# 空数据表异常
我试图检查DataTable对象是否为null,但每当DataTable为null时,我的程序总是给我一个OLEDBEException 我有这个方法来设置数据表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)) {
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+