web-dev-qa-db-ja.com

データセットが空かどうかを確認してください

これは私にとってはうまく機能しています。データセットが空かどうかをチェックするifを使用します。その場合、null値を返します。しかし、データセットのチェックは正しい方法ですか、それとも他の方法で行う必要がありますか?

 da2 = new SqlDataAdapter("SELECT project_id FROM project WHERE _small_project_id = '" + cb_small_project.SelectedValue + "' ORDER BY NEWID()", conn);
 ds2 = new DataSet();
 da2.Fill(ds2);
 DataRow[] rowProject = dt2.Select();

 if (ds2.Tables[0].Rows.Count == 0)
    cmd.Parameters["@_project_id"].Value = guidNull;
 else
    cmd.Parameters["@_project_id"].Value = rowProject[0]["project_id"];
11
JanOlMajti

私の意見では、「正しい」方法は両方をチェックすることです。

ds2.Tables.Count 

ds2.Tables[0].Rows.Count
17
Rafał Warzycha

boolを使用してtrueを返すことができます。 dataset内のすべてのテーブル

bool IsEmpty(DataSet dataSet)
{
    foreach(DataTable table in dataSet.Tables)
    if (table.Rows.Count != 0) return false;

    return true;
}
4
joetheterm

私はチェックしてみます:
ds2.HasChanges()
データが追加されている場合はtrueである必要があります。詳細については、 ここ を確認してください。

4
gimbar

これは私のために働いた....そして例外を与えないだろう....

foreach (DataTable table in ds.Tables)
   if (table.Rows.Count != 0)
      table.Dispose();
2
Osama Rizwan

これを試して

 if (((System.Data.InternalDataCollectionBase)(ds.Tables)).Count != 0)
{
}
else
{
}

上記のコードは機能します

1
manikandanlg