.NET调用存储过程

weqrazxaar 2012-04-27 05:37:00
用的是三层,实现注册功能。
这是DAL的SQLHelper

public static int ExcuteNonQuery(string sqlcmd, SqlParameter[] Parameter)
{
SqlConnection conn = new SqlConnection(SqlConn);
if(conn.State!=ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "st_register";
cmd.CommandType = CommandType.StoredProcedure;
if (Parameter != null)
{
foreach (SqlParameter item in Parameter)
{
cmd.Parameters.Add(item);
}
}
return cmd.ExecuteNonQuery();
}

BLL层中的注册功能

public int CreateStudent(M_Student m_student)
{
return SQLHelper.ExcuteNonQuery("st_register", new SqlParameter[] {
new SqlParameter("@uname",m_student.Uname),
new SqlParameter("@password",m_student.Password),
new SqlParameter("@tel",m_student.Tel),
new SqlParameter("@sex",m_student.Sex),
new SqlParameter("@address",m_student.Address)
});
}

创建的存储过程

create procedure st_register
@uname varchar(50),
@password varchar(50),
@tel varchar(50),
@sex bit,
@address varchar(50)
as
insert into Stu(uname,password,tel,sex,address)values(@uname,@password,@tel,@sex,@address)


为什么每次运行注册的时候会有:“超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。”
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2012-04-27
  • 打赏
  • 举报
回复
死循环了,你把BLL中的参数写到DAL中去,直接调用DAL函数就行了
kke_007 2012-04-27
  • 打赏
  • 举报
回复
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER procedure [dbo].[st_register]
@uname varchar(50),
@password varchar(50),
@tel varchar(50),
@sex bit,
@address varchar(50)
as
insert into Stu(uname,password,tel,sex,address)values(@uname,@password,@tel,@sex,@address)



go
--go一下

62,046

社区成员

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

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

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

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