存储过程如下:
CREATE PROCEDURE code_add
@user_number nvarchar(30),
@user_msg nvarchar(50),
@user_area nvarchar(30),
@user_step int,
@tnum nvarchar(20)
AS
exec(insert into +@tnum+ (user_number,user_brow,user_msg,user_area,user_date,user_step,user_active)values(@user_number,0,@user_msg,@user_area,datetime.now().toshortdatestring(),@user_step,no))
GO
在ASP.NET中调用:
Dim myCommand As New SqlCommand("code_add", conn)
myCommand.CommandType = CommandType.StoredProcedure
Dim fnumber As New SqlParameter("@user_number", SqlDbType.nvarchar, 30)
fnumber.Value = tnumber
myCommand.Parameters.Add(fnumber)
Dim fmsg As New SqlParameter("@user_msg", SqlDbType.nvarchar, 30)
fmsg.Value = tmsg
myCommand.Parameters.Add(fmsg)
Dim farea As New SqlParameter("@user_area", SqlDbType.nvarchar, 30)
farea.Value = tarea
myCommand.Parameters.Add(farea)
Dim fstep As New SqlParameter("@user_step", SqlDbType.int)
fstep.Value = tstep
myCommand.Parameters.Add(fstep)
Dim fnum As New SqlParameter("@tnum", SqlDbType.nvarchar, 20)
fnum.Value = "guest_" &tnum
myCommand.Parameters.Add(fnum)
myCommand.ExecuteNonQuery()
结查提示所有的变量都没有声明,
试:去掉myCommand.ExecuteNonQuery(),操作成功,但是数据并没有写入数据表。
请教这类存储过程该怎样调用?
非常感谢!!
your sp is not good, so please run your sp in SQL Query Analyzer, make sure it works
try
CREATE PROCEDURE code_add
@user_number nvarchar(30),
@user_msg nvarchar(50),
@user_area nvarchar(30),
@user_step int,
@tnum nvarchar(20)
AS
exec(insert into + @tnum + (user_number,user_brow,user_msg,user_area,user_date,user_step,user_active) values( + @user_number +,0, + @user_msg + , + @user_area + ,getdate(), + convert(varchar,@user_step) + ,0))
GO
or try
CREATE PROCEDURE code_add
@user_number nvarchar(30),
@user_msg nvarchar(50),
@user_area nvarchar(30),
@user_step int,
@tnum nvarchar(20)
AS
declare @sql nvarchar(1000)
set @sql = insert into + @tnum + (user_number,user_brow,user_msg,user_area,user_date,user_step,user_active) values(@user_number,0,@user_msg,@user_area,getdate(),@user_step,0)
EXEC sp_executesql @sql, N@user_number nvarchar(30),@user_msg nvarchar(50),@user_area nvarchar(30),@user_step int, @user_number, @user_msg, @user_area, @user_step
GO