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”。存在一个显示转换(是否缺少强制转换?) 展开
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”。存在一个显示转换(是否缺少强制转换?) 展开
6个回答
展开全部
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());
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());
展开全部
如果用SqlDateReader只能获取一行值。
用SqlDataAdapter来从数据库取值。最后定义一个DataSet。然后SqlDataAdapter.Fill(DataSet);就行了,DataSet里面的Tables[0]就是你需要的结果
用SqlDataAdapter来从数据库取值。最后定义一个DataSet。然后SqlDataAdapter.Fill(DataSet);就行了,DataSet里面的Tables[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();
这样应该就可以了
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();
这样应该就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
amount[j] = Convert.toInt32(ds.Tables["table1"].Rows[j][0]);
其实不用返回dataset,只有一列数据的话,dataset成本大,没有必要
返回datatable,然后将每个数值附到变量中,或者数组中,或者重写toString()方法。
其实不用返回dataset,只有一列数据的话,dataset成本大,没有必要
返回datatable,然后将每个数值附到变量中,或者数组中,或者重写toString()方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
amount[j] = ds.Tables["table1"].Rows[j][0];
这句话中amount[j]是数字型数组,ds.Tables["table1"].Rows[j][0];返回的是一个object类型的值,需要强制转换才能放进去。
其他类型的一样,都要转换。
这句话中amount[j]是数字型数组,ds.Tables["table1"].Rows[j][0];返回的是一个object类型的值,需要强制转换才能放进去。
其他类型的一样,都要转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询