c#数据库怎么得到查询结果?

flyinman 2012-03-09 05:27:14
/*
将数据库的操作打包成如下格式
如果使用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;
}

}
...全文
645 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingxiang506 2012-03-09
  • 打赏
  • 举报
回复
既然你这个代码是为了返回DataSet,那么你为何要把返回类型设置为object.完全没有必要嘛.
而且,int i = (int)ExecuteAccessQuery(strSQL1);肯定不行的,DataSet转换为object,然后怎么可能转换为int呢?
想要结果,你就要遍历表嘛,如下
DataSet ds=ExecuteAccessQuery(strSQL1);;
foreach(DataRow dr in ds.tables[0].Rows)
{
dr["字段名"].ToString();
dr["字段名"].ToString();
... ...
}
dalmeeme 2012-03-09
  • 打赏
  • 举报
回复
改用cmd.ExecuteScalar()执行,返回一个object即可,前有所示。楼主为什么不试一下呢。。。
吟月轻舞 2012-03-09
  • 打赏
  • 举报
回复
dataset是数据集(多个datatable)
datatable是数据表(你可以想象成Excel)

获取某一单元格的数据:datatable.Rows[行号][列号]
行号和列号都是从0开始计算,列号也可以写字段名
如第三行第4列(假设字段名"aaa"):datatable.Rows[2][3]或datatable.Rows[2]["aaa"]
stonespace 2012-03-09
  • 打赏
  • 举报
回复
你的数据在dataset第一个表的第一行的第一列上,
stonespace 2012-03-09
  • 打赏
  • 举报
回复
string strSQL1 = "select 疫苗总量 from vaccStore where name = '"+name+"';";

你这样得到的不是一个值,而是一个表,

改为:

DataSet ds=(DataSet)ExecuteAccessQuery(strSQL1);

int i=Conver.ToInt32(ds.Tables[0].Rows[0][0]);
flyinman 2012-03-09
  • 打赏
  • 举报
回复
主要是我想取出数据库中的数据进行运算,但是无论dataset还是别的,都没法转变成int型数据。
flyinman 2012-03-09
  • 打赏
  • 举报
回复
string strSQL1 = "select 疫苗总量 from vaccStore where name = '"+name+"';";
int i = (int)ExecuteAccessQuery(strSQL1);
我用了这样的语句,但显示的是没有办法实现类型转化呀。
dalmeeme 2012-03-09
  • 打赏
  • 举报
回复
用object r=cmd.ExecuteScalar();
return r;
天二天 2012-03-09
  • 打赏
  • 举报
回复
DataTable dt = ds.Talbes[0];
  • 打赏
  • 举报
回复
ds就是你查询到的数据集!!!
天二天 2012-03-09
  • 打赏
  • 举报
回复
public static Dataset ExecuteAccessQuery

DataTable dt = Dataset.Talbes[0];
EnForGrass 2012-03-09
  • 打赏
  • 举报
回复
不就在ds里面

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧