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

[求助]数据库插入问题

xinghun868 发布于 2007-09-24 20:44, 468 次点击

private void Button1_Click(object sender, System.EventArgs e)
{
SqlConnection myConn=new SqlConnection("user id=sa;data source=GZY-7E6267900F3;initial catalog=hisbook;password=");
string SqlString="Insert into book values(@name,@pwd,@sex,@phone,@address,@Email)";
SqlCommand myComm=new SqlCommand(SqlString,myConn);
SqlParameter namePara=new SqlParameter("@name",SqlDbType.Char,20);
SqlParameter pwdPara=new SqlParameter("@pwd",SqlDbType.Char,10);
SqlParameter sexPara=new SqlParameter("@sex",SqlDbType.Char,1);
SqlParameter phonePara=new SqlParameter("@phone",SqlDbType.Char,15);
SqlParameter addressPara=new SqlParameter("@address",SqlDbType.Char,30);
SqlParameter EmailPara=new SqlParameter("@Email",SqlDbType.Char,20);

myComm.Parameters.Add(namePara);
myComm.Parameters.Add(pwdPara);
myComm.Parameters.Add(sexPara);
myComm.Parameters.Add(phonePara);
myComm.Parameters.Add(addressPara);
myComm.Parameters.Add(EmailPara);

namePara.Value=TextBox1.Text;
pwdPara.Value=TextBox2.Text;
sexPara.Value=DropDownList2.SelectedItem.Text;
phonePara.Value=TextBox3.Text;
addressPara.Value=TextBox4.Text;
EmailPara.Value=TextBox5.Text;
myConn.Open();
try
{
myComm.ExecuteNonQuery();
// myComm1.ExecuteNonQuery();
Label17.Text="成功";
Label17.Visible=true;
}
catch(Exception excp){
System.Diagnostics.Debug.WriteLine(excp.Message);
Label17.Text="失败";
Label17.Visible=true;
}
}
请问:为什么我加了sex就说插入失败,而去掉sex就可以呢??
请问: “sexPara.Value=DropDownList2.SelectedItem.Text;”我这句语法有错吗??还是其它什么问题??

7 回复
#2
jxnuwy042007-09-24 21:11

单步调试看看 sexPara.Value=DropDownList2.SelectedItem.Text会得到什么值,一般是这样写的 sexPara.Value=DropDownList2.SelectedValue.ToString();

#3
冰彩虹2007-09-24 23:05
SqlParameter sexPara=new SqlParameter("@sex",SqlDbType.Char,1);
这个参数长度为1个字符

DropDownList2.SelectedItem.Text肯定不致一个字符长

我猜想你是要这样吧DropDownList2.SelectedValue
#4
longlongjiaz2007-09-25 10:54
应该是DropDownList2.SelectedValue
#5
川流不息2007-09-25 13:23
DropDownList2.SelectedItem.Text可能是“男”或“女”,那么你是不是把它们的值设到SelectedItem.Value才对呢“0”或“1”。所以,我认为你应该是用DropDownList2.SelectedItem.Value
#6
师妃暄2007-09-26 09:35
4楼正解.
#7
zklwzh2007-09-27 13:42

3楼说的有道理。

#8
zyp507254052007-09-27 16:34
二楼说的对.
1