110,533
社区成员
发帖
与我相关
我的任务
分享
ALTER PROCEDURE [dbo].[sp_GetInsertID]
-- Add the parameters for the stored procedure here
@tblName nvarchar(100), --表名
@columnName nvarchar(1000), --列名集合
@columnValue nvarchar(1000), --数值集合
@id bigint output --返回的刚插入的ID
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
declare @strSQL nvarchar(4000) -- 主语句
set @strSQL = 'INSERT INTO '+@tblName+' ('+@columnName+') VALUES ('+@columnValue+')'
exec(@strSQL)
set @id=scope_identity()
END
SqlParameter qtbl = new SqlParameter("@tblName",SqlDbType.NVarChar);
qtbl.Value = "[HTPMS].[dbo].[T_LXWZ_FenLei]";
SqlParameter cname = new SqlParameter("@columnName",SqlDbType.NVarChar);
cname.Value = "[编码],[名称],[备注],[P_ID]";
SqlParameter cvalue = new SqlParameter("@columnValue",SqlDbType.NVarChar);
cvalue.Value = String.Format("'{0}','{1}','{2}',{3}",this.tempTL.Num,this.tempTL.Name,this.tempTL.Info,this.tempTL.PId);
SqlParameter qid = new SqlParameter("@id", SqlDbType.BigInt);
qid.Direction = ParameterDirection.Output;
try
{
if (WTechSoft.DBUtility.SqlHelper.ExecuteProcedure("sp_GetInsertID", new SqlParameter[] { qtbl, cname, cvalue, qid }) > 0)
{
this.tempTL.Id = Convert.ToInt64(qid.Value.ToString());
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
}
SqlParameter qid
却是没有值。请问是我的代码的问题吗?怎么改?