111,128
社区成员
发帖
与我相关
我的任务
分享string sqlStr = "select name from MSYSOBJECTS where type=1 and flags=0";
DataTable dt = DBHelper.GetDsFromSql(sqlStr).Tables[0];class DBHelper
{
public static DataSet GetDsFromSql(string sqlStr)
{
string strConnection = "Provider = Microsoft.ACE.OLEDB.12.0;";
strConnection += @"Data Source =" + AppDomain.CurrentDomain.BaseDirectory + "" + Consts.c_AccessName + ".accdb";
OleDbConnection conn = new OleDbConnection(strConnection);
DataSet ds = new DataSet();
try
{
OleDbDataAdapter da = new OleDbDataAdapter(sqlStr, conn);
conn.Open();
da.Fill(ds);
}
catch (Exception e)
{
ds.Tables.Add("TempTable");
}
conn.Close();
return ds;
}
}
string sqlStr1 = "select * from Table";
DataTable dt1 = DBHelper.GetDsFromSql(sqlStr1).Tables[0];
string sqlStr2 = "select name from MSYSOBJECTS where type=1 and flags=0";
DataTable dt2 = DBHelper.GetDsFromSql(sqlStr2).Tables[0];
两条语句在Access数据库中执行查询都有数据,
在程序代码测试中,dt1有数据,dt2无数据。
try
{
conn.Open(); //先打开连接,再建立da对象
OleDbDataAdapter da = new OleDbDataAdapter(sqlStr, conn);
da.Fill(ds);
}
catch (Exception e)
{
ds.Tables.Add("TempTable");
}