注册 登录
编程论坛 ASP.NET技术论坛

求助:看看这段程序——已解决

yunj1105 发布于 2007-03-28 15:20, 730 次点击

正确代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "" || TextBox2.Text == "")
{
Response.Write("<script defer>alert('请每项都输入!');</script>");
return;//跳出
}
SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["labConnectionString"].ConnectionString);
if (Session["action"].ToString() == "edit")
{
string strCmd = "update lab_dept set dept_ID='"+TextBox1.Text+"',dept_name='"+TextBox2.Text+"' where dept_num='"+int.Parse(Session["deptnum"].ToString())+"'";
SqlCommand myComm = new SqlCommand(strCmd, sqlconn);
myComm.Connection.Open();
myComm.ExecuteNonQuery();
}
else if (Session["action"].ToString() == "add")
{
string strC = "select * from lab_dept where dept_ID='"+TextBox1.Text+"' or dept_name='"+TextBox2.Text+"'";
SqlCommand myC = new SqlCommand(strC, sqlconn);
myC.Connection.Open();
object a = myC.ExecuteScalar();//把a改为object类
if (a != null)
{
Response.Write("<script defer>alert('您输入的已存在,请重新输入!');</script>");
return;
}
else
{
string strCmd = "insert lab_dept(dept_ID,dept_name) values('" + TextBox1.Text + "','" + TextBox2.Text + "')";
SqlCommand myComm = new SqlCommand(strCmd, sqlconn);
myComm.ExecuteNonQuery();
myComm.Connection.Close();
}
}

Response.Redirect("Dept.aspx");

[此贴子已经被作者于2007-3-30 16:23:53编辑过]

17 回复
#2
Kendy1234562007-03-28 15:27
你单步看一下就知道了
不是不执行
而是无论如何最后都会执行到 Response.Redirect("Dept.aspx");
#3
BullWolf2007-03-28 15:28

代码看懂了,是不是验证登录成功并且转页面啊?
但是不理解你问的问题。。。

#4
yunj11052007-03-28 15:29
单步Session["action"]没值啊
if (TextBox1.Text == "" || TextBox2.Text == "")
Response.Write("<script defer>alert('请输入院系ID与名称!');</script>");
连这句都不执行
#5
Kendy1234562007-03-28 15:37
session的值是你前面的页面保存的
没有值的话 在其它页面找找。 再哪个页面设置session你总该知道吧
#6
yunj11052007-03-28 15:44

那怎么TextBox2.Text TextBox2.Text 都为空
if (TextBox1.Text == "" || TextBox2.Text == "")
Response.Write("<script defer>alert('请输入院系ID与名称!');</script>");
也不执行
#7
bygg2007-03-28 15:49
if (Session["action"].ToString() == "edit")

不是不执行,你看一下Session["action"]这个传过来的是个什么值就明白了.
#8
yunj11052007-03-28 15:51
if (Session["action"].ToString() == "edit")这个执行
是当Session["action"].ToString() == "add" 时就不执行,直接跳转了
#9
bygg2007-03-28 15:57
你里面不是写的if ....else..吗?执行了if当然不会执行else咯.
#10
Kendy1234562007-03-28 16:05
以下是引用yunj1105在2007-3-28 15:29:55的发言:
单步Session["action"]没值啊
if (TextBox1.Text == "" || TextBox2.Text == "")
Response.Write("<script defer>alert('请输入院系ID与名称!');</script>");
连这句都不执行

这个改textbox1.text.trim textbox1.text2.trim试试

#11
BullWolf2007-03-28 16:39
Response.Write("<script defer>alert('请输入院系ID与名称!');</script>");
把<script defer>里的defer 去掉看看~~
#12
yunj11052007-03-28 16:39

不行了我实在表达不出要说什么了,还是谢谢大家了,我在重写个程序好了

#13
BullWolf2007-03-28 16:44
不错。。我学到东西。。增开心。。哈哈
#14
sean882007-03-29 15:45
以下是引用yunj1105在2007-3-28 16:39:31的发言:

不行了我实在表达不出要说什么了,还是谢谢大家了,我在重写个程序好了

可以允许我说一下吗?你不要生气哦`~~或者重写一个程序能够成功,但是根源问题你还不知道,如果下次碰到同样问题,是否也重写?
你这个是一个提交页面,你要在事件激发前先给Session变量赋值,然后才能捕获Session的内容.

Session["action"]="edit";

if (Session["action"].ToString() == "edit")
{
//代码
}
else
{
//代码
}

[此贴子已经被作者于2007-3-29 15:48:48编辑过]

#15
windstores2007-03-29 15:56
if (TextBox1.Text == "" || TextBox2.Text == "")
{
Response.Write("<script defer>alert('请输入院系ID与名称!');</script>");
//符合时不执行
Response.End(); //少了这一句不行的
}
至于你说的问题,你下个断点 跟踪下变量 看下session的值是多少
#16
yunj11052007-03-30 11:21
恩,Session["action"]的值有,我的问题是当传过来的Session["action"]=add时就出现错误了
不过现在问题解决了,没有重新写程序哦
#17
sean882007-03-30 16:13
以下是引用yunj1105在2007-3-30 11:21:25的发言:
恩,Session["action"]的值有,我的问题是当传过来的Session["action"]=add时就出现错误了
不过现在问题解决了,没有重新写程序哦

那你好歹也说出你出错的原因呀,解决问题的方法`~~让大伙知道是怎么回事~~~~

#18
yunj11052007-03-30 16:23

好了,我把对的代码写上去了

1