0

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 が null かどうかを確認したい。

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 に答える