一个菜鸟请问:为什么总是执行到catch这一句,高分相求

joyball 2004-12-20 03:51:38
下面一个小程序,
private void btnAccept_Click(object sender, System.EventArgs e)
{
if(Page.IsValid)
{
//save new user to the database
SqlConnection con;
string sql;
SqlCommand cmd;
StringBuilder sb=new StringBuilder();
ArrayList values=new ArrayList();

sb.Append("INSERT INTO[User]");
sb.Append("(UserID,Login,Password,FirstName,LastName,");
sb.Append("CellNumber,DateOfBirth)");
sb.Append("VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',");
sb.Append("{8},{9},{10})");

//add reqired values to replace
values.Add(Guid.NewGuid().ToString());
values.Add(txtLogin.Text);
values.Add(txtPwd.Text);
values.Add(txtFName.Text);
values.Add(txtLName.Text);
values.Add(txtPhone.Text);
values.Add(txtEmail.Text);
values.Add(0);

//add the optional values or Null
if(txtAddress.Text!=string.Empty) values.Add("'"+txtAddress.Text+"'");
else values.Add("NULL");

if(txtMobile.Text!=string.Empty) values.Add("'"+txtMobile.Text+"'");
else values.Add("NULL");

if(txtBirth.Text!=string.Empty) values.Add("'"+txtBirth.Text+"'");
else values.Add("NULL");

//Format the string with the array of values
sql=String.Format(sb.ToString(),values.ToArray());

//Connect and execute the query
con=new SqlConnection("data source=Joyball;initial catalog=Friends;user id=sa");
cmd=new SqlCommand(sql,con);
con.Open();

bool doredirect=true;

try
{
cmd.ExecuteNonQuery();
}
catch
{
doredirect=false;
this.lblMessage.Visible=true;
this.lblMessage.Text="Insert couldn't be performed,User name may be already taken.";
}
finally
{
con.Close();
}
if(doredirect)
Response.Redirect("Login.aspx");
}//end if
else
{
lblMessage.Text="FIx thefollowing errors and retry:";
}//end else

}
执行过之后,总是出现“Insert couldn't be performed,User name may be already taken.”,而我的数据库中什么数据都没有,请教各位高人
...全文
177 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
an_andy 2004-12-20
  • 打赏
  • 举报
回复
该说的都说拉...
帮你顶
joyball 2004-12-20
  • 打赏
  • 举报
回复
真得很不好意思,我真地在努力。
gbbword 2004-12-20
  • 打赏
  • 举报
回复
看这个变量名字,真好笑。楼主下会别用这个变量名字了。容易让人误会。

"INSERT INTO[User]
(UserID,Login,Password,FirstName,LastName,CellNumber,DateOfBirth,Lost1,lost2,lost3)
VALUES('1','2','3','4','5','6','7','8','9','10')
xiaoslong 2004-12-20
  • 打赏
  • 举报
回复
帮你顶
WillSmart 2004-12-20
  • 打赏
  • 举报
回复
顶吧...
marvelstack 2004-12-20
  • 打赏
  • 举报
回复
//执行存储过程,PUB_SYS_LOG为存储过程名
public static void InsertGMonitorLog(int sysPrgId,string logType,ing logOperationMsg)
{
SqlConnection myConn = new SqlConnection(strConn);
SqlCommand myComm = new SqlCommand("PUB_SYS_LOG",myConn);
myComm.CommandType = CommandType.StoredProcedure;

SqlParameter myPara = new SqlParameter("@SYS_PRG_ID",SqlDbType.Int);
myPara.Value = sysPrgId;
myComm.Parameters.Add(myPara);

myPara = new SqlParameter("@LOG_TYPE",SqlDbType.VarChar,3);
myPara.Value = logType;
myComm.Parameters.Add(myPara);

myPara = new SqlParameter("@LOG_OPERATION_MSG",SqlDbType.VarChar,50);
myPara.Value = logOperationMsg;
myComm.Parameters.Add(myPara);

try
{
myConn.Open();
myComm.ExecuteNonQuery();
}
catch(SqlException e)
{
e.ToString();
}
finally
{
myConn.Close();
}
}
marvelstack 2004-12-20
  • 打赏
  • 举报
回复
使用参数化查询或存储过程代替字符的组合。
lucbesson 2004-12-20
  • 打赏
  • 举报
回复
看书去 我晕
amendajing 2004-12-20
  • 打赏
  • 举报
回复
有错误当然被catch住了呀,你的sql写错了,看看sql帮助吧
bluesage 2004-12-20
  • 打赏
  • 举报
回复
呵呵。。还是学好好学SQL吧!
lr2651 2004-12-20
  • 打赏
  • 举报
回复
哎,尽信书则不如无书啊!!!
wangxt 2004-12-20
  • 打赏
  • 举报
回复
帮你顶
looner 2004-12-20
  • 打赏
  • 举报
回复
沒用過sql server,一直在用oracle
要麼你用標準sql來寫吧,看著暈暈:)
還有,你的sql幹嘛不一次寫完,非要Append那麼多次呢?
jin_xiaolu2000 2004-12-20
  • 打赏
  • 举报
回复
sb.Append("INSERT INTO[User]");
sb.Append("(UserID,Login,Password,FirstName,LastName,");
sb.Append("CellNumber,DateOfBirth)");//加上你的其他字段2个
sb.Append("VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',");
sb.Append("{8},{9},{10})");

===================================================================
sb.Append("INSERT INTO[User]");
//要不就这样 自己对齐全部字段,必须是10个才行,
sb.Append("VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',");
sb.Append("{8},{9},{10})");

这个问题,报错是很详细的啊
joyball 2004-12-20
  • 打赏
  • 举报
回复
hehe,真不是我写的,我哪里会写这么长的东西啊,我照着书上抄的,刚刚开始学习。请各位大哥帮忙
tonybaobao 2004-12-20
  • 打赏
  • 举报
回复
呵呵,估计代码不是你自己写的吧!否则怎么连需求都不知道。你自己设了10个参数,当然应该知道传什么进去的。
joyball 2004-12-20
  • 打赏
  • 举报
回复
我真的不会阿
joyball 2004-12-20
  • 打赏
  • 举报
回复
大哥,如何改阿?????
KentYu 2004-12-20
  • 打赏
  • 举报
回复
是啊:)改一下sql语句
looner 2004-12-20
  • 打赏
  • 举报
回复
是啊,字段和數據的個數怎麼不同呢
加载更多回复(1)

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧