存储过程?!

wjbmbl 2008-03-25 06:07:06
偶现在刚开始学数据库,目前只会写DataReader,DataAdapter,DataSet和Command对象..
我知道SqlCommand对象可以执行非查询语句--ExecuteNonQuery();
查询语句可以用DataSet,DataReader等将结果存入.
======================================以上的不对的地方请指点哈哈

现在我看书上有什么"存储过程",仔细看了看很难,一堆参数,在C#的类里实现那么复杂..
这是书上的代码---最简单的那段了几乎!
/// <summary>
/// 获取所有管理员信息
/// </summary>
/// <param name="P_Str_srcTable">管理员信息表名</param>
/// <returns>返回所有管理员信息的数据集</returns>
public DataSet ReturnAdminIDs(string P_Str_srcTable)
{
SqlConnection myConn = dbObj.GetConnection();
SqlCommand myCmd = new SqlCommand("Proc_GetAdminInfo", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
//执行过程
myConn.Open();
try
{
myCmd.ExecuteNonQuery();

}
catch (Exception ex)
{
throw (ex);
}
finally
{
myCmd.Dispose();
myConn.Close();

}
SqlDataAdapter da = new SqlDataAdapter(myCmd);
DataSet ds = new DataSet();
da.Fill(ds, P_Str_srcTable);
return ds;

}

现在我想问的是(不好意思,罗嗦这半天)执行存储过程用的就是Command对象的ExecuteNonQuery()方法吗?
不是只能执行 非查询语句吗?
存储过程的工作原理是啥子嘛?
请高手们指点下,在下先谢谢各位啦!
...全文
154 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjbmbl 2008-03-27
  • 打赏
  • 举报
回复
谢谢大家啦 !
分不多,见谅啊!
wlinglong 2008-03-26
  • 打赏
  • 举报
回复
存储过程就是在服务器端执行一定的SQL语句来返回结果,
执行存储过程用的就是Command对象的ExecuteNonQuery()方法吗?
还可以用 ExecuteReader();
yananguo_1985 2008-03-26
  • 打赏
  • 举报
回复
使用myCmd.CommandType = CommandType.StoredProcedure; 指定程序调用数据库存储过程执行,
而其与Command mycmd=new Command(..);执行是一样的.
yyyyzzzz_2002 2008-03-25
  • 打赏
  • 举报
回复
1.首先你要看看你的存储过程里面的业务逻辑是做什么,如果是insert 数据,update数据,还是包含一个结果集
2.存储过程是什么:用简单的控制流形成的和T-SQL语句形成的语句,就想c#一个方法一样,只不过更简单,容易写
3.比如if ,if else ,while,cursor,try ...catch(sql server2005),等等
例如:我们写一个解析xml文件的存储过程(在sql server2005运行)
USE tempdb
GO

--创建一个解析xml的存储过程,可以传递一个xml类型的参数
CREATE PROCEDURE dbo.ParseXml
@xml xml --xml类型的参数
AS

SET NOCOUNT OFF

IF @xml IS NULL
RAISERROR('There is not xml instance.',16,1)

SELECT T.c.value('.','varchar(30)') AS Information
FROM @xml.nodes('/Root/andy') T(c)

GO

--执行这个存储过程

DECLARE @xml xml
SET @xml = N'<Root>
<andy>newegg</andy>
<andy>chengdu</andy>
</Root>'
EXEC dbo.ParseXml @xml
pt1314917 2008-03-25
  • 打赏
  • 举报
回复
晕。这些对象(dataset,datareader...)调用存储过程和SQL语句是一样的噢。只不过调用存储过程的时候要加上这句:
myCmd.CommandType = CommandType.StoredProcedure; 指定命令类型为存储过程。。

wjbmbl 2008-03-25
  • 打赏
  • 举报
回复
还有,我发现程序用的几乎全是存储过程,我刚学的那些Adapter,DataReader等等怎么好象都没有用啊?
是不是不用学了啊?
本来就比较晕了,现在更晕了!

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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