私はこのコードを持っています:
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=c:\\myDB.accdb");
conn.Open();
sql = string.Format("SELECT Version FROM tblVersions where [FUL Flag] = 'Y'");
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];
if (ds.Tables[0].Rows.Count == 1)
{
tV.Text = dt.Rows[0][0].ToString(); //only looking for the first result
}
else
{
tV.Text = "no match";
}
実行しても結果が返されません。ただし、SELECT
ステートメントをコピーしてAccessのクエリウィンドウに直接貼り付けると、結果が見つかります。これが私がAccessに貼り付けるものです:
SELECT Version FROM tblVersions where [FUL Flag] = 'Y'
これにより、多くの行が返されます。
どこかで違いがありませんか?ありがとう!
編集:解決策を見つけました..私は探しているべきです
(ds.Tables[0].Rows.Count > 0)
それ以外の
(ds.Tables[0].Rows.Count == 1)
複数の行が返される可能性があるため。