我是个新手,谁能帮我解释一下存储过程。最好有他的应用实例,包括数据层对他的调用。

showtong 2005-05-31 04:52:39
从来没有用过存储过程,对他不是很了解,谁能够帮我解释一下!最好有他的应用实例,包括数据层对他的调用。
...全文
135 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzq686 2005-06-01
  • 打赏
  • 举报
回复

建表加数据;
create table com_user
{
cname varchar(20),
pwd varchar(20)
}

insert com_user select 'name1','pwd' union select 'name2','pwd2'

建立存储过程:
CREATE PROCEDURE proc_checkPwd
@cname varchar(20),
@pwd varchar(20),
@reason varchar(50) output

AS
select * from com_user where cname=@cname
if @@rowcount<1
begin
set @reason='cname error'
end
else
begin
select * from com_user where cname= @cname and pwd=@pwd
if @@rowcount<1
begin
set @reason='pwd error'
end
else
begin
set @reason='access'
end
end
GO

C#后台代码:
button事件:
checkPwd("name1","pwd1");
checkPwd("name2","pwd1");
checkPwd("name3","pwd2");



private void checkPwd(string cname,string pwd)
{
SqlConnection Conn = new SqlConnection("server=yyy;database=数据库名;uid=sa;password=");
SqlCommand MyCom= new SqlCommand ("proc_checkPwd", conn);
MyCom.CommandType = CommandType.StoredProcedure;
SqlParameter p0=MyCom.Parameters.Add("@cname", SqlDbType.varchar(20));
SqlParameter p1=MyCom.Parameters.Add("@pwd", SqlDbType.varchar(20));
SqlParameter p2=MyCom.Parameters.Add("@reason ", SqlDbType.varchar(50));
p0.Value=cname;
p1.Value=pwd";
P2.Direction=ParameterDirection.Output;
conn.Open();
MyCom.ExecuteNonQuery();
conn.Close();
Response.Write("<script language='javascript'>");
Response.Write("alert("+ p2.ToString() +");");
Response.Write("</");
Response.Write("script>");
}




leejie 2005-06-01
  • 打赏
  • 举报
回复
已发送,请查收
showtong 2005-06-01
  • 打赏
  • 举报
回复
showtong@gmail.com
谢谢这位大哥,希望能够详细一点,我很菜的。最好三层的啊!
leejie 2005-06-01
  • 打赏
  • 举报
回复
留下Email,我发给你。
showtong 2005-06-01
  • 打赏
  • 举报
回复
似乎不是我所要的,再顶一下,谢谢!
ilenvence 2005-06-01
  • 打赏
  • 举报
回复
up
老戴12345654 2005-05-31
  • 打赏
  • 举报
回复

就是一堆sql语句
lovefootball 2005-05-31
  • 打赏
  • 举报
回复
主要是语法,其实就是封装起来的sql语句
ye_zi 2005-05-31
  • 打赏
  • 举报
回复
public in flagqiandao(int userid)
{
int uid = userid;
int flag;
mycmd = new SqlCommand("flagqiandao",myConn);
mycmd.CommandType = Command.StoredProcedure;
mycmd.parameters.add("@userid",uid);
mycmd.parameters["@flag"].Direction = ParameterDirection.Output;
mycmd.executeNonQuery();
flag = int.Parse(mycmd.Parameters["@flag"].Value.Tostring());
return flag;
}

这是调用存储过程

CREATE PROCEDURE flagqiandao
(@userid varchar(50) ='',

)
AS
if @userid is NULL
select top 40 kh.khdm,kh.khmc,kh.khjc,kh.xsry from crm_khxx kh
where kh.khmc like '%' + @userid + '%' and kh.khlx='代理公司'
else
select kh.khdm,kh.khmc,kh.khjc,kh.xsry from crm_khxx kh,crm_khdlgx gx,opp_archive_issue issue
where kh.khmc like '%' + @userid + '%' and kh.khlx='代理公司' and convert(varchar,kh.khdm)= gx.dlgskhdm
and gx.ggzkhdm = convert(varchar,issue.khdm) and issue.issueid=@issueid

return
GO

这是存储过程

介意你多看些例子,自然就会了,学习进步!

lr2651 2005-05-31
  • 打赏
  • 举报
回复
建议你看看.Net那个PetShop的例子,那里面很详细也很标准
fengfangfang 2005-05-31
  • 打赏
  • 举报
回复

ASP.NET中如何调用存储过程
http://www.5d.cn/Tutorial/webdevelop/asp/200412/1960.html

使用 ADO.NET 访问 Oracle 9i 存储过程
http://bbs.hidotnet.com/10430/ShowPost.aspx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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