これは私にとってはうまく機能しています。データセットが空かどうかをチェックする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"];
私の意見では、「正しい」方法は両方をチェックすることです。
ds2.Tables.Count
ds2.Tables[0].Rows.Count
bool
を使用してtrue
を返すことができます。 dataset
内のすべてのテーブル
bool IsEmpty(DataSet dataSet)
{
foreach(DataTable table in dataSet.Tables)
if (table.Rows.Count != 0) return false;
return true;
}
私はチェックしてみます:ds2.HasChanges()
データが追加されている場合はtrueである必要があります。詳細については、 ここ を確認してください。
これは私のために働いた....そして例外を与えないだろう....
foreach (DataTable table in ds.Tables)
if (table.Rows.Count != 0)
table.Dispose();
これを試して
if (((System.Data.InternalDataCollectionBase)(ds.Tables)).Count != 0)
{
}
else
{
}
上記のコードは機能します