如何将数据库查询结果放入变量中

如:selectCOUNT(*)fromPHOTO_PHOTOSgroupbyalbumid;我用的是SQLSERVER2005数据库,我想把这个结果放入一个变量中可以吗... 如:select COUNT(*) from PHOTO_PHOTOS group by albumid;
我用的是SQLSERVER2005数据库,我想把这个结果放入一个变量中可以吗?
展开
 我来答
rightmin
2008-11-18 · TA获得超过4124个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:1802万
展开全部
在C#程序里面,使用SQL语句的一般方法是:
1、建立连接:OleDbConnection或者SqlConnection
2、建立SQL命令:OleDbCommand或者SqlCommand
3、执行命令。
执行命令的方法有很多:
a、ExecuteScalar();//返回的是结果的第一行第一列,
b、使用DataTable,返回一个表,
c、Reader()//向前只读
返回的结果使用类型转换赋值给你的变量。
下面是一个例子,连接的Access数据库,要改成SQL Server只需要改连接常量就行了。
namespace AccessControl
{
public class AccessControl
{
/// <summary>
/// 连接常量
/// </summary>
private OleDbConnection Con;
/// <summary>
/// SQL命令
/// </summary>
private OleDbCommand Com;
/// <summary>
/// 初始化一个连接实例
/// </summary>
/// <param name="FilePath">文件名</param>
public AccessControl(string FilePath)
{
Con = new OleDbConnection(@"Provider =Microsoft.Jet.OLEDB.4.0;Data Source =" + @FilePath);
Com = new OleDbCommand();
}
/// <summary>
/// 返回执行所受影响的函数
/// </summary>
/// <param name="com"></param>
/// <returns></returns>
public int ExecuteGetLines(string com)
{
try
{
Com.CommandText = com;
Com.Connection = Con;
Con.Open();
int i = 0;
i = Com.ExecuteNonQuery();
return i;
}
catch(Exception e)
{
throw new System.ArgumentException("错误",e.Message);
return 0;
}
finally
{
CloseCon();
}
}
/// <summary>
/// 返回结果的第一行第一列
/// </summary>
/// <param name="com"></param>
/// <returns></returns>
public object ExecuteGetCol(string com)
{
try
{
Com.CommandText = com;
Com.Connection = Con;
Con.Open();
object o = null;
o = (object)Com.ExecuteScalar();
return o;
}
catch (Exception e)
{
throw new System.ArgumentException("错误", e.Message);
}
finally
{
CloseCon();
}
}
/// <summary>
/// 返回一个数据集合DataTable
/// </summary>
/// <param name="com"></param>
/// <returns></returns>
public DataTable ExecuteGetTable(string com)
{
try
{
DataTable dt = new DataTable();
Com.CommandText = com;
Com.Connection = Con;
OleDbDataAdapter dad = new OleDbDataAdapter(Com);
dad.Fill(dt);
return dt;
}
catch(Exception e)
{
throw new System.ArgumentException("错误", e.Message);
}
finally
{
CloseCon();
}
}
/// <summary>
/// 关闭连接
/// </summary>
public void CloseCon()
{
Com.Dispose();
Con.Close();
}
}
}
FantasyChump
2008-11-18 · TA获得超过3288个赞
知道大有可为答主
回答量:2127
采纳率:0%
帮助的人:2248万
展开全部
昏.这样情况下不要用ExecuteReader(),那样多麻烦.而且推荐用 SqlClient.

SqlConnection conn = new SqlConnection("//数据库连接字符串信息//");
SqlCommand cmd = new SqlCommand("select COUNT(*) from PHOTO_PHOTOS group by albumid", conn);

conn.Open();
int totalCount = (int)cmd.ExecuteScalar(); //totalcount 就是总数
conn.Close();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9f7b4d
2008-11-18 · 超过27用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:0
展开全部
我举个简单的例子:
int count=0;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select COUNT(*) from PHOTO_PHOTOS group by albumid; ";
try
{
OleDbDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
count=reader.GetInt32(0);//获取统计数
}
reader.close();//关闭记录集
}
catch(Exception e)
{
//异常信息
}

基本思路就这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdy_servers
2008-11-18 · TA获得超过185个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:188万
展开全部
private int CalculateRecord()
{
try
{
int recordCount;
SqlConnection oc = new SqlConnection(connectionstring);
oc.Open();
string OleDb = "select count(*) as [count] from News where TypeName='文教视点'";
SqlCommand cmd = new SqlCommand(OleDb, oc);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
recordCount = Int32.Parse(sdr["count"].ToString());
}
else
{
recordCount = 0;
}
sdr.Close();
oc.Close();
return recordCount;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yigeming
2008-11-18
知道答主
回答量:30
采纳率:0%
帮助的人:21.7万
展开全部
ExecuteScalar().ToString()

用变量接受就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式