ASP中向数据库插入数据的问题!!
本人是个业余爱好者,从网上荡了个OA办公系统源码,然后自己改哦了学习。现在遇到难处了希望大家多多指教如图,提交下拉框中的数据提示出错,提示内容如下:
过程或函数 'departmentInsert' 需要参数 '@dept_parid',但未提供该参数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 过程或函数 'departmentInsert' 需要参数 '@dept_parid',但未提供该参数。
源错误:
行 260:
行 261: //finally, execute the command.
行 262: int retval = cmd.ExecuteNonQuery();
行 263: // detach the SqlParameters from the command object, so they can be used again.
文件代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
//部门名称
string bumen = this.TextBox1.Text;
//上级部门ID
//int parid = this.DropDownList1.DataValueField;
int parid = Int32.Parse(this.DropDownList1.Text);
//int parid = 3 ;
if (bumen != "")
{
if (parid != 0)
{
department dp = new department();
dp.dept_department = bumen;
dp.dept_parid = parid;
int i = departmentBLL.Insert(dp);
if (i < 0)
{
this.Response.Redirect("selectbm.aspx");
}
}
else
{
this.Response.Write("<script>window.alert ('请选择上级部门')</script>");
}
}
else
{
this.Response.Write("<script>window.alert ('请您输入标题')</script>");
this.TextBox1.Focus();
}
}
存储过程代码如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-------------------------------------------------------------
--参数说明
-------------------------------------------------------------
/*
@dept_id 部门id
@dept_department 部门名称
@dept_parid 上级部门代码
*/
ALTER PROCEDURE [dbo].[departmentInsert]
@dept_id int output,
@dept_department varchar(50),
@dept_parid int,
AS
SET NOCOUNT ON
insert into department
(
[dept_department],
[dept_parid]
)
values
(
@dept_department,
@dept_parid
)
set @dept_id=scope_identity();
return @@error
Entity文件代码如下:
public class department
{
#region 变量定义
///<summary>
///部门id
///</summary>
private int _dept_id;
///<summary>
///部门名称
///</summary>
private string _dept_department = String.Empty;
///<summary>
///上级部门id
///</summary>
private int _dept_parid = String.Empty;
................
#region 构造函数
public department()
{
}
public department
(
int dept_id,
string dept_department,
int dept_parid
)
{
_dept_id = dept_id;
_dept_department = dept_department;
_dept_parid = dept_parid;
}
#endregion
#region 公共属性
///<summary>
///部门id
///</summary>
public int dept_id
{
get { return _dept_id; }
set { _dept_id = value; }
}
///<summary>
///部门名称
///</summary>
public string dept_department
{
get { return _dept_department; }
set { _dept_department = value; }
}
///<summary>
///上级部门id
///</summary>
public int dept_parid
{
get { return _dept_parid; }
set { _dept_parid = value; }
}
.............
SqlServerDAL文件代码如下:
#region -----------实例化接口函数-----------
#region 添加
/// <summary>
/// 向数据库中插入一条新记录
/// </summary>
/// <param name="department">department实体对象</param>
/// <returns></returns>
public int Insert(department department)
{
string sqlCommand = "departmentInsert";
int res;
SqlParameter[] param ={
new SqlParameter("@dept_id",SqlDbType.Int),
new SqlParameter("@dept_department",SqlDbType.VarChar),
new SqlParameter("@dept_parid",SqlDbType.Int),
};
param[0].Direction = ParameterDirection.Output;
param[1].Value = department.dept_department;
param[2].Value = department.dept_parid;
res = SqlHelper.ExecuteNonQuery(Conn.SqlConn, CommandType.StoredProcedure, sqlCommand, param);
department.dept_id = ((param[0].Value) == DBNull.Value) ? 0 : Convert.ToInt32(param[0].Value);
return res;
}
/// <summary>
/// 向数据库中插入一条新记录。带事务
/// </summary>
/// <param name="sp">事务对象</param>
/// <param name="department">department实体对象</param>
/// <returns></returns>
public int Insert(SqlTransaction sp, department department)
{
string sqlCommand = "departmentInsert";
int res;
SqlParameter[] param ={
new SqlParameter("@dept_id",SqlDbType.Int),
new SqlParameter("@dept_department",SqlDbType.VarChar),
new SqlParameter("@dept_parid",SqlDbType.Int)
};
param[0].Direction = ParameterDirection.Output;
param[1].Value = department.dept_department;
param[2].Value = department.dept_parid;
res = SqlHelper.ExecuteNonQuery(sp, CommandType.StoredProcedure, sqlCommand, param);
department.dept_id = ((param[0].Value) == DBNull.Value) ? 0 : Convert.ToInt32(param[0].Value);
return res;
}
#endregion
我是实在搞不懂了,希望大大帮帮忙,看看到底是什么原因,我是初次注册上来的。20分全给大家了,谢谢了!