-- =============================================
-- Description: <sp_JimProc_GetComID>
-- 登陆的时候,根据帐号所在部门ID来获得上级部门,乃至于其所在公司ID
-- ItemLevel = 1 是公司, 是从1开始(不是从0开始)1,2,3....
-- =============================================
ALTER PROCEDURE [dbo].[sp_JimProc_GetComID]
@DepartmentID int,
@ItemLevel int,
@aimID int output
AS
declare @swapLevel int
declare @Parentid intselect @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@DepartmentID
set @aimID=@Parentid
while @swapLevel > @ItemLevel
begin
select @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@Parentid
set @aimID=@Parentid
end//下面是连接类里面的一个函数,但是没有办法执行啊,改怎么返回上面取得的一个ID呢?
// 执行存储过程,并返回数据 DataTable
public DataTable ExecutePorcedureGetDataTable(string procName, SqlParameter[] coll)
{
try
{
openDataBase();// 这是打开数据库
for (int i = 0; i < coll.Length; i++)
{
comm.Parameters.Add(coll[i]);
} comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = procName; da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
closeDataBase();//关闭数据库
}
return dt;
}
//通过下面几句来调用//取出该帐号所在公司的ID
SqlParameter para = new SqlParameter("@DepartmentID", SqlDbType.Int);
SqlParameter para1 = new SqlParameter("@ItemLevel", SqlDbType.Int);
para.Value = 13;
para1.Value = 1; SqlParameter[] spList = { para, para1 };
DataTable mydt = this.myconn.ExecutePorcedureGetDataTable("sp_JimProc_GetComID", spList);没有办法执行啊?
ExecutePorcedureGetDataTable 执行其他存储过程是正确的
sp_JimProc_GetComID在数据库里面执行也是正确的两个在一块就不行了
-- Description: <sp_JimProc_GetComID>
-- 登陆的时候,根据帐号所在部门ID来获得上级部门,乃至于其所在公司ID
-- ItemLevel = 1 是公司, 是从1开始(不是从0开始)1,2,3....
-- =============================================
ALTER PROCEDURE [dbo].[sp_JimProc_GetComID]
@DepartmentID int,
@ItemLevel int,
@aimID int output
AS
declare @swapLevel int
declare @Parentid intselect @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@DepartmentID
set @aimID=@Parentid
while @swapLevel > @ItemLevel
begin
select @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@Parentid
set @aimID=@Parentid
end//下面是连接类里面的一个函数,但是没有办法执行啊,改怎么返回上面取得的一个ID呢?
// 执行存储过程,并返回数据 DataTable
public DataTable ExecutePorcedureGetDataTable(string procName, SqlParameter[] coll)
{
try
{
openDataBase();// 这是打开数据库
for (int i = 0; i < coll.Length; i++)
{
comm.Parameters.Add(coll[i]);
} comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = procName; da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
comm.Parameters.Clear();
closeDataBase();//关闭数据库
}
return dt;
}
//通过下面几句来调用//取出该帐号所在公司的ID
SqlParameter para = new SqlParameter("@DepartmentID", SqlDbType.Int);
SqlParameter para1 = new SqlParameter("@ItemLevel", SqlDbType.Int);
para.Value = 13;
para1.Value = 1; SqlParameter[] spList = { para, para1 };
DataTable mydt = this.myconn.ExecutePorcedureGetDataTable("sp_JimProc_GetComID", spList);没有办法执行啊?
ExecutePorcedureGetDataTable 执行其他存储过程是正确的
sp_JimProc_GetComID在数据库里面执行也是正确的两个在一块就不行了
SqlParameter para1 = new SqlParameter("@ItemLevel", SqlDbType.Int);怎么没有那个输出参数?
@DepartmentID int,
@ItemLevel int
AS
declare @swapLevel int
declare @Parentid int
declare @aimID int
select @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@DepartmentID
set @aimID=@Parentid
while @swapLevel > @ItemLevel
begin
select @swapLevel=ItemLevel,@Parentid=Parentid from Admin_Department where DepartmentID=@Parentid
set @aimID=@Parentid
end//通过下面几句来调用//取出该帐号所在公司的ID
SqlParameter para = new SqlParameter("@DepartmentID", SqlDbType.Int);
SqlParameter para1 = new SqlParameter("@ItemLevel", SqlDbType.Int);
para.Value = 13;
para1.Value = 1; SqlParameter[] spList = { para, para1 };
DataTable mydt = this.myconn.ExecutePorcedureGetDataTable("sp_JimProc_GetComID", spList);
Int32 companyID= Int32.parse(mydt.rows[0][0].tostring())
这样就可以获得了