ASP.NET发帖自动编号触发器的问题,触发器写好了,但是不起作用。该数据表我没设主键,各字段允许为空,cid字段varchar(50)。但是应该不会是表设置的问题会的朋友帮一下这个是发帖自动编号的触发器
CREATE trigger tg_tInsert on dbo.t_content
for insert
as
declare @cid varchar(12)
declare @Title varchar(50)
declare @Subject varchar(5000)
declare @S_Name varchar(8)
declare @CreateTime varchar(30)
declare @AnswerTime varchar(30)
declare @HotDegree int
declare @num int
declare @strNum varchar(20)
declare @date varchar(8)
declare @Numlen int--设置流水号的长度
set @Numlen = 4
--设置前缀
select @date = 't' + Convert(varchar(8),GetDate(),12)
select @cid =max(cid) from t_content
where cid like @date + '%'
if @cid is null
set @num=0
else
set @num=cast(replace(@cid,@date,'') as int)
set @num = @num + 1
set @strNum = cast(@num as varchar(10))
while(len(@strNum)<@Numlen)
set @strNum = '0' + @strNum
set @cid=@date +@strNum
select @cid=cid, @Title=Title, @Subject=Subject, @S_Name=S_Name, @CreateTime=CreateTime, @AnswerTime=AnswerTime, @HotDegree=HotDegree from inserted
rollback
insert into t_content values( @cid, @Title, @Subject, @S_Name, @CreateTime, @AnswerTime, @HotDegree )
这是添加一个帖子的C#语句:
protected void Button2_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=BYSJ;Integrated Security=True;");
con.Open();
SqlCommand cmd = new SqlCommand("AddContent", con);
cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Title", SqlDbType.VarChar);
cmd.Parameters.Add("@Subject", SqlDbType.VarChar);
cmd.Parameters.Add("@S_Name", SqlDbType.VarChar);
cmd.Parameters.Add("@CreateTime", SqlDbType.VarChar);
cmd.Parameters.Add("@AnswerTime", SqlDbType.VarChar);
cmd.Parameters.Add("@HotDegree", SqlDbType.VarChar); cmd.Parameters["@Title"].Value = this.txttitle.Text.ToString();
cmd.Parameters["@Subject"].Value = this.txtcontent.Text.ToString();
cmd.Parameters["@S_Name"].Value = this.lblname.Text.ToString();
cmd.Parameters["@CreateTime"].Value = System.DateTime.Now.ToString();
cmd.Parameters["@AnswerTime"].Value = System.DateTime.Now.ToString();
cmd.Parameters["@HotDegree"].Value = '0';
cmd.ExecuteNonQuery(); Response.Redirect("~/SuccessPage.aspx");
Response.Write("<script language=javascript>alert('恭喜您,信息添加成功!!');</script>");
con.Close();
}这个添加一个帖子的存储过程:
CREATE PROCEDURE dbo.AddContent
(
@Title varchar(50),
@Subject varchar(5000),
@S_Name varchar(8),
@CreateTime varchar(30),
@AnswerTime varchar(30),
@HotDegree int
)
AS
insert into t_content(Title,Subject,S_Name,CreateTime,AnswerTime,HotDegree)
VALUES(@Title, @Subject, @S_Name, @CreateTime, @AnswerTime, @HotDegree)
RETURN
GO
CREATE trigger tg_tInsert on dbo.t_content
for insert
as
declare @cid varchar(12)
declare @Title varchar(50)
declare @Subject varchar(5000)
declare @S_Name varchar(8)
declare @CreateTime varchar(30)
declare @AnswerTime varchar(30)
declare @HotDegree int
declare @num int
declare @strNum varchar(20)
declare @date varchar(8)
declare @Numlen int--设置流水号的长度
set @Numlen = 4
--设置前缀
select @date = 't' + Convert(varchar(8),GetDate(),12)
select @cid =max(cid) from t_content
where cid like @date + '%'
if @cid is null
set @num=0
else
set @num=cast(replace(@cid,@date,'') as int)
set @num = @num + 1
set @strNum = cast(@num as varchar(10))
while(len(@strNum)<@Numlen)
set @strNum = '0' + @strNum
set @cid=@date +@strNum
select @cid=cid, @Title=Title, @Subject=Subject, @S_Name=S_Name, @CreateTime=CreateTime, @AnswerTime=AnswerTime, @HotDegree=HotDegree from inserted
rollback
insert into t_content values( @cid, @Title, @Subject, @S_Name, @CreateTime, @AnswerTime, @HotDegree )
这是添加一个帖子的C#语句:
protected void Button2_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=BYSJ;Integrated Security=True;");
con.Open();
SqlCommand cmd = new SqlCommand("AddContent", con);
cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Title", SqlDbType.VarChar);
cmd.Parameters.Add("@Subject", SqlDbType.VarChar);
cmd.Parameters.Add("@S_Name", SqlDbType.VarChar);
cmd.Parameters.Add("@CreateTime", SqlDbType.VarChar);
cmd.Parameters.Add("@AnswerTime", SqlDbType.VarChar);
cmd.Parameters.Add("@HotDegree", SqlDbType.VarChar); cmd.Parameters["@Title"].Value = this.txttitle.Text.ToString();
cmd.Parameters["@Subject"].Value = this.txtcontent.Text.ToString();
cmd.Parameters["@S_Name"].Value = this.lblname.Text.ToString();
cmd.Parameters["@CreateTime"].Value = System.DateTime.Now.ToString();
cmd.Parameters["@AnswerTime"].Value = System.DateTime.Now.ToString();
cmd.Parameters["@HotDegree"].Value = '0';
cmd.ExecuteNonQuery(); Response.Redirect("~/SuccessPage.aspx");
Response.Write("<script language=javascript>alert('恭喜您,信息添加成功!!');</script>");
con.Close();
}这个添加一个帖子的存储过程:
CREATE PROCEDURE dbo.AddContent
(
@Title varchar(50),
@Subject varchar(5000),
@S_Name varchar(8),
@CreateTime varchar(30),
@AnswerTime varchar(30),
@HotDegree int
)
AS
insert into t_content(Title,Subject,S_Name,CreateTime,AnswerTime,HotDegree)
VALUES(@Title, @Subject, @S_Name, @CreateTime, @AnswerTime, @HotDegree)
RETURN
GO
解决方案 »
- 静态页登陆的问题,以及ashx转向的问题
- Repeater控件取值?
- .net设置断点
- ASP.NET 2.0 中如何精确设置控件位置?
- 当设置TextBox的TextMode属性为MultiLine时,当用户输入时,怎么限制只能输入两行.
- oledb与sqlclient区别
- datagrid中有一模板列,在模板列中添加了一个textbox控件,向该textbox输入数据,刷新页面textbox的值就没有了,怎么才能让textbox不受刷
- alert弹出消息框,可画面没出来,全白的,怎么让画面现出来,再弹消息框呀?
- 初学:ASP.NET连接数据库以及数据类型的问题
- 如何让日历同时显示两个月,或多个月?
- 定时器如何用随机范围?那位哥哥来说一下
- 求助——如何获取List控件中的Lebal控件的具体数值——求助
@cid=cid 把这个cid output了还有 Response.Redirect("~/SuccessPage.aspx");
Response.Write("<script language=javascript>alert('恭喜您,信息添加成功!!');</script>");能弹出么。?