/*
将数据库的操作打包成如下格式
如果使用select语句,比如
string strSQL1 = "select 疫苗总量 from vaccStore where name = '"+name+"';";
如何让下面的函数ExecuteAccessQuery(strSQL1)返回一个查询结果呢?
*/
public static object ExecuteAccessQuery(string strSQL)
{
string ACCESS_CONN_STRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database3.accdb"; OleDbConnection conn = new OleDbConnection(ACCESS_CONN_STRING); OleDbCommand cmd = new OleDbCommand(strSQL, conn); cmd.CommandType = CommandType.Text; try
{
OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); return ds; }
catch
{
conn.Close();
throw;
} }
将数据库的操作打包成如下格式
如果使用select语句,比如
string strSQL1 = "select 疫苗总量 from vaccStore where name = '"+name+"';";
如何让下面的函数ExecuteAccessQuery(strSQL1)返回一个查询结果呢?
*/
public static object ExecuteAccessQuery(string strSQL)
{
string ACCESS_CONN_STRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database3.accdb"; OleDbConnection conn = new OleDbConnection(ACCESS_CONN_STRING); OleDbCommand cmd = new OleDbCommand(strSQL, conn); cmd.CommandType = CommandType.Text; try
{
OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); return ds; }
catch
{
conn.Close();
throw;
} }
return r;
int i = (int)ExecuteAccessQuery(strSQL1);
我用了这样的语句,但显示的是没有办法实现类型转化呀。
datatable是数据表(你可以想象成Excel)获取某一单元格的数据:datatable.Rows[行号][列号]
行号和列号都是从0开始计算,列号也可以写字段名
如第三行第4列(假设字段名"aaa"):datatable.Rows[2][3]或datatable.Rows[2]["aaa"]
而且,int i = (int)ExecuteAccessQuery(strSQL1);肯定不行的,DataSet转换为object,然后怎么可能转换为int呢?
想要结果,你就要遍历表嘛,如下
DataSet ds=ExecuteAccessQuery(strSQL1);;
foreach(DataRow dr in ds.tables[0].Rows)
{
dr["字段名"].ToString();
dr["字段名"].ToString();
... ...
}