C#代码如何创建存储过程

 我来答
greystar_cn
2018-05-27 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部

存储过程: 固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高效率、体改数据库的安全性、减少网络流量。

1.打开SQL Server数据库,展开 “数据库”系欸但,找到使用的数据库(目标数据库),展开该数据库节点,找到 “可编程性” 节点并展开,就可以看到 “存储过程”,在 “存储过程”上点击右键,新建存储过程,然后会弹出查询分析器,在这输入创建代码就可以

create proc myinsert -- 创建一个存储过程,名称为myinsert
--这里写参数,如果有的话;没有的话就空着
as
--这里写具体语句,可以写N个
go--可加可不加,go的意思是另起一页,相当于下一个功能块。如果下边不写语句,可以不加!

View Code

代码实例

create proc myinsert@Name varchar(50)as insert into Student(Name)values(@Name)go

View Code

上面代码段的存储过程,可以向 Student表中插入一行数据。最后执行代码就能在 “存储过程”下保存次代码段,名为“myinsert”

上面提到的方法是手动创建一个存储过程的方法,还有另外一种方法,直接在 “新建查询”,打开查询分析器,然后在上边的语句中加入一句话:"use DataBaseName ” ,DataBaseName就是使用的数据库的名字,也就是在这个数据库中建立存储过程

例如:在Test数据库中,对Class表插入一行数据

use Testgocreate proc myclass    @Name varchar(30)as
insert into Class(Name)values(@Name)go

View Code

存储过程中也可以做 if 判断

USE [Test]GO/****** Object:  StoredProcedure [dbo].[myclass]    Script Date: 10/30/2017 4:30:22 PM ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc [dbo].[myclass]
@Name varchar(30),    @SName varchar(50)as
if    @Name!=null
begin
insert into Class(Name)values(@Name)        return
end
if    @SName!=null
begin
insert into Student(Name)values(@SName)    end

View Code

2.如何在C# 中调用存储过程

using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Stored_Procedures
{    class Program
{        static void Main(string[] args)
{            string strsql = "Data Source=hw-zhi-02;Initial Catalog=Test;Integrated Security=True";//数据库链接字符串
string sql = "myclass";//要调用的存储过程名
SqlConnection conStr = new SqlConnection(strsql);//SQL数据库连接对象,以数据库链接字符串为参数
SqlCommand comStr = new SqlCommand(sql, conStr);//SQL语句执行对象,第一个参数是要执行的语句,第二个是数据库连接对象
comStr.CommandType = CommandType.StoredProcedure;//因为要使用的是存储过程,所以设置执行类型为存储过程
//依次设定存储过程的参数
comStr.Parameters.Add("@Name", SqlDbType.Text).Value = "";
comStr.Parameters.Add("@SName", SqlDbType.Text).Value = "Test";
conStr.Open();//打开数据库连接
//  MessageBox.Show(comStr.ExecuteNonQuery().ToString());//执行存储过程
SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(comStr);
DataTable DT = new DataTable();
SqlDataAdapter1.Fill(DT);
conStr.Close();//关闭连接          }
}
}

View Code

最后跑程序,可以在对应数据库中找到添加的数据

lmonkey
2021-01-27 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式