C#(winForm) SQL数据库 怎么得到返回的多行值

想请问一下,我在使用C#跟SQL2000,现在想从数据库得到多行的值,比如说:selectsum(DD)fromBBgroupbyCC;然后得到几行,我在SQL里面可以得... 想请问一下,我在使用C#跟SQL2000,现在想从数据库得到多行的值,比如说:
select sum(DD)
from BB
group by CC;
然后得到几行,我在SQL里面可以得到比如下面的几行:

DD
2222
3333
4444
5555
6666

现在想在C#里面设计,语句要怎么写才能把这些值得到?是否需要一个数组,那怎么把这些值赋值到数组里面?谢谢。。。等。。。

之前提问过,有两个朋友说是用DateSet,但是具体操作有点不明了,能否谁能够再次详细一点写一下?谢谢。。需要详细一点的操作。。。还有,如果使用SqlDateReader,能用吗?怎么用?谢谢
按照第一个朋友的说明,我这样写,对不?
string sql = string.Format("select sum(DD) from BB group by CC;");
SqlCommand cmd = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();//打开数据库

SqlDataAdapter daReader = new SqlDataAdapter();
daReader.SelectCommand = cmd;

DataSet ds = new DataSet();
daReader.Fill(ds, "table1");

//把DateSet的值赋值到数组中,amount[]数组之前已经定义并初始化。
for (int j = 0; j < 16;j++ )
{
amount[j] = ds.Tables["table1"].Rows[j][0];
}

但是提示错误说:无法将类型“object”隐式转化为“int”。存在一个显示转换(是否缺少强制转换?)
展开
 我来答
孙中吕
2009-11-02 · 专注C/S架构开发框架技术研究
孙中吕
采纳数:435 获赞数:788

向TA提问 私信TA
展开全部
select CC,sum(DD)
from BB
group by CC;

得到CC,DD的统计数,用SqlClient组件接收返回的数据,如DataTable.
DataTable.Rows就是
DD
2222
3333
4444
5555
6666
这些数据了~~

[原创]C# 数据操作窗体实现增/删/改/查(图)源代码
http://hi.baidu.com/jonnysuen/blog/item/cec692502c76f8858c543094.html

这篇文章有SqlClient详细用法。

by C#易学网

====================================================

amount[j] = ds.Tables["table1"].Rows[j][0];
改为:

amount[j] =int.Parse(ds.Tables["table1"].Rows[j][0].ToString());
莫凉辛
2009-11-02 · TA获得超过103个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:76.6万
展开全部
如果用SqlDateReader只能获取一行值。
用SqlDataAdapter来从数据库取值。最后定义一个DataSet。然后SqlDataAdapter.Fill(DataSet);就行了,DataSet里面的Tables[0]就是你需要的结果
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a71bf094f
2009-11-02 · TA获得超过648个赞
知道答主
回答量:329
采纳率:0%
帮助的人:0
展开全部
你可以用gridview来显示你的结果 把你查询出的结果放到一个dataset当中
string sql = string.Format("select sum(DD) from BB group by CC;");
SqlCommand cmd = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();//打开数据库

SqlDataAdapter daReader = new SqlDataAdapter();
daReader.SelectCommand = cmd;

DataSet ds = new DataSet();
daReader.Fill(ds);
GridView1.DataSource = ds;
GridView2.DataBind();
这样应该就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
monkeygfly
2009-11-02 · TA获得超过469个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:59万
展开全部
amount[j] = Convert.toInt32(ds.Tables["table1"].Rows[j][0]);
其实不用返回dataset,只有一列数据的话,dataset成本大,没有必要
返回datatable,然后将每个数值附到变量中,或者数组中,或者重写toString()方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静听火燃
2009-11-02 · TA获得超过621个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:328万
展开全部
amount[j] = ds.Tables["table1"].Rows[j][0];
这句话中amount[j]是数字型数组,ds.Tables["table1"].Rows[j][0];返回的是一个object类型的值,需要强制转换才能放进去。
其他类型的一样,都要转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式