C#高级编程:调用存储过程[1]

 我来答
新科技17
2022-11-04 · TA获得超过5876个赞
知道小有建树答主
回答量:355
采纳率:100%
帮助的人:73.6万
展开全部
    ——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买

    用一个命令对象调用存储过程 就是定义存储过程的名称 给过程的每个参数添加参数定义 然后用上一节中给出的方法执行命令

    为了使本节的示例更有说服力 下面定义一组可以用于插入 更新和删除Northwind示例数据库中Region表的记录的存储过程 这个表尽管很小 但可以用于给每种常见的存储过程编写示例      调用没有返回值的存储过程

    调用存储过程的最简单示例是不给调用者返回任何值 下面定义了两个这样的存储过程 一个用于更新现有的Region记录 另一个用于删除指定的Region记录

    ( ) 记录的更新    更新Region记录是很简单的 因为(假定主键码不能被更新)只有一个列可以更新 直接在SQL Server查询分析器中键入这些示例 或者运行本章下载代码中的StoredProcs sql文件 在该文件中包含本节中的所有存储过程

    CREATE PROCEDURE RegionUpdate (@RegionID INTEGER @RegionDescription NCHAR( )) AS       SET NOCOUNT OFF       UPDATE Region          SET RegionDescription = @RegionDescription          WHERE RegionID = @RegionID    GO

    给真实世界中的表执行更新命令 需要重复选择和返回已更新的记录 这个存储过程有两个输入参数(@RegionID和@RegionDescription) 对数据库执行UPDATE语句

    要在 NET代码中运行这个存储过程 需要定义一个SQL命令 并执行它     SqlCommand aCommand = new SqlCommand( RegionUpdate conn);    aCommand CommandType = CommandType StoredProcedure;    aCommand Parameters Add(new SqlParameter ( @RegionID SqlDbType Int RegionID ));    aCommand Parameters Add(new SqlParameter( @RegionDescription SqlDbType NChar RegionDescription ));    aCommand UpdatedRowSource = UpdateRowSource None;

    这段代码创建了一个新SqlCommand对象aCommand 并把它定义为一个存储过程 然后 依次添加每个参数 最后把存储过程的结果设置为UpdateRowSource枚举中的一个值

    该存储过程有两个参数 要更新的Region记录的惟一主键码 给这个记录的新描述 创建好命令后 就可以用下面的命令执行它     aCommand Parameters[ ] Value = ;    aCommand Parameters[ ] Value = South Western England ;    aCommand ExecuteNonQuery();

    这几个命令设置了每个参数的值 然后执行存储过程 该过程没有返回值 因此使用ExecuteNonQuery就足够了 命令参数可以像前面那样依次设置 或者按照名称来设置

    ( ) 记录的删除    下一个存储过程可用于从数据库中删除一个Region记录     CREATE PROCEDURE RegionDelete (@RegionID INTEGER) AS       SET NOCOUNT OFF       DELETE FROM Region       WHERE       RegionID = @RegionID    GO

    这个过程只需要该记录的主键码值 下面的代码使用SqlCommand对象调用这个存储过程     SqlCommand aCommand = new SqlCommand( RegionDelete conn);    aCommand CommandType = CommandType StoredProcedure;    aCommand Parameters Add(new SqlParameter( @RegionID SqlDbType Int RegionID ));    aCommand UpdatedRowSource = UpdateRowSource None;

    这个命令只接收一个参数 如下面的代码所示 它执行RegionDelete存储过程 这是一个按照名称设置参数的示例     aCommand Parameters[ @RegionID ] Value= ;    aCommand ExecuteNonQuery();

lishixinzhi/Article/program/net/201311/15502

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式