C# if(exists() return 问题
ALTERPROCEDURE[dbo].[proc_addStudent](@StudentIDvarchar(20),@DepartmentIDvarchar(5),@...
ALTER PROCEDURE [dbo].[proc_addStudent]
(
@StudentID varchar(20) ,
@DepartmentID varchar(5) ,
@Name nvarchar(20) ,
@sex char(1),
@Password varchar(20) ,
@Telephone varchar(30),
@Email varchar(50),
@comment nvarchar(500)
)
as
if(exists(select * from StudentInfo where StudentID=@StudentID))
return -1
insert into StudentInfo( StudentID, DepartmentID, Name, sex, Password, Telephone, Email, comment)
values(@StudentID, @DepartmentID, @Name, @sex, @Password, @Telephone, @Email, @comment)
return @@rowcount
上面是存储过程
以下为程序
obj.Execpro("proc_addStudent", sp, out rowcount);
if (rowcount > 0)
{
Response.Redirect("AddStu.aspx?flag=addsuccess");
}
else
{
ClientScript.RegisterStartupScript(typeof(Page), "", "alert('添加失败!')", true);
}
这个是新建一个学生用户,if(exists())那句是查找存不存这个学号的学生,应该是不存在的,因为我已经在原有的最大学号之上加1了
这段我基本明白,我不明的是ROWCOUNT受影晌的是指那几行呢?
还有return -1有什麽用呢?
还有别一问题
data = System.DateTime.Now.Year.ToString() + (int.Parse(str.Substring(6)) + 1).ToString("000000");
这里的ToString("000000")有什么作用呢? 展开
(
@StudentID varchar(20) ,
@DepartmentID varchar(5) ,
@Name nvarchar(20) ,
@sex char(1),
@Password varchar(20) ,
@Telephone varchar(30),
@Email varchar(50),
@comment nvarchar(500)
)
as
if(exists(select * from StudentInfo where StudentID=@StudentID))
return -1
insert into StudentInfo( StudentID, DepartmentID, Name, sex, Password, Telephone, Email, comment)
values(@StudentID, @DepartmentID, @Name, @sex, @Password, @Telephone, @Email, @comment)
return @@rowcount
上面是存储过程
以下为程序
obj.Execpro("proc_addStudent", sp, out rowcount);
if (rowcount > 0)
{
Response.Redirect("AddStu.aspx?flag=addsuccess");
}
else
{
ClientScript.RegisterStartupScript(typeof(Page), "", "alert('添加失败!')", true);
}
这个是新建一个学生用户,if(exists())那句是查找存不存这个学号的学生,应该是不存在的,因为我已经在原有的最大学号之上加1了
这段我基本明白,我不明的是ROWCOUNT受影晌的是指那几行呢?
还有return -1有什麽用呢?
还有别一问题
data = System.DateTime.Now.Year.ToString() + (int.Parse(str.Substring(6)) + 1).ToString("000000");
这里的ToString("000000")有什么作用呢? 展开
4个回答
展开全部
StudentID 是学号.
过程在添加行之前,搜索已有的学生,如果此学号已存在,则返回一个标记.代表学生已存在.
因为要保持学生的唯一性,姓名可以重复,但学号不能有两个(/以上).
所以程序中在else 后显示"添加失败",实际上应当显示"学号已存在,添加失败"
此方法的使用相当于自定义了一个逻辑分流.
ToString("000000"),这个没用过.
不过你可以自己试一下ToString("000000")和ToString()的区别,
如果输出有区别的话,可能是格式化字符串上的设定.
过程在添加行之前,搜索已有的学生,如果此学号已存在,则返回一个标记.代表学生已存在.
因为要保持学生的唯一性,姓名可以重复,但学号不能有两个(/以上).
所以程序中在else 后显示"添加失败",实际上应当显示"学号已存在,添加失败"
此方法的使用相当于自定义了一个逻辑分流.
ToString("000000"),这个没用过.
不过你可以自己试一下ToString("000000")和ToString()的区别,
如果输出有区别的话,可能是格式化字符串上的设定.
展开全部
1成功了rouwcount就是1
2returned -1就会跳出函数,意思就是如果已经有重复的主键就不执行后面的插入操作了,返回-1是为了判断执行成功了没有, if (rowcount > 0)这里不是有用到么,其实返回什么都无所谓啦,只要能判断执行是不是成功就行。
3data应该是时间吧,意思就是数据库中完整的时间格式后面有时分秒微秒啥的,把位补齐...其实不补齐插入也能成功的
2returned -1就会跳出函数,意思就是如果已经有重复的主键就不执行后面的插入操作了,返回-1是为了判断执行成功了没有, if (rowcount > 0)这里不是有用到么,其实返回什么都无所谓啦,只要能判断执行是不是成功就行。
3data应该是时间吧,意思就是数据库中完整的时间格式后面有时分秒微秒啥的,把位补齐...其实不补齐插入也能成功的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
成功的话rowcount应该就是1,表示有一行变了(就是新加了)
return -1表示出错了
你补充的这个data这一句你的程序里没有啊?toString是把int转成string
至于这个“000000”我就不知道了
return -1表示出错了
你补充的这个data这一句你的程序里没有啊?toString是把int转成string
至于这个“000000”我就不知道了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ToString("000000");表示十进制数,也可以用ToString("D6"),比如你的整数是5,则在5的前面补齐5个0,也就是000005,如果位数超过6了,比如:5000000,则显示原数,这样防止将这个数存入数据库时0被默认去掉了
在很多时候,比如格式化日期的时候,可能日期显示为2010-1-5 1:1:1,而你需要显示成2010-01-05 01:01:01,你就可以用到ToString("D2");
在很多时候,比如格式化日期的时候,可能日期显示为2010-1-5 1:1:1,而你需要显示成2010-01-05 01:01:01,你就可以用到ToString("D2");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询