插入数据时找不出的问题

jfl011227 2009-11-16 04:54:51
小弟的目的是向表中插入数据,结果显示插入失败,找了半天找不出问题所在,请大家帮下忙!
再就是如何取出表中最后一条记录的ID???

表的结构如下:
create table clientinformation
(
cid int foreign key references clientloadinformation(clid),--用户ID
ctruename varchar(10) not null,--用户真实姓名
csex varchar(2) not null,--性别
cbirthdate smalldatetime not null,--出生日期
cwork varchar(50),--工作单位
chomeaddr varchar(50),--家庭住址
ctel varchar(15),--联系电话
crecord varchar(20),--教育程度
cheadimage varchar(50),--用户头像
chobbies varchar(20)--兴趣爱好
)
go




//调用的方法
public static bool insertpeople(people p)
{
try
{
SqlConnection con=DBCON.ClientCreateCon();
con.Open();
SqlCommand cmd=new SqlCommand("insert into clientinformation values(@pID,@ptruename,@psex,@pbirth,@pwork,@phome,@ptel,@precord,@pheadimage,@phobby)",con);
SqlParameter para=new SqlParameter("@pID",SqlDbType.VarChar,4);
para.Value=p.cid;
cmd.Parameters.Add(para);
para=new SqlParameter("@pname",SqlDbType.VarChar,10);
para.Value=p.truename;
cmd.Parameters.Add(para);
para=new SqlParameter("@psex",SqlDbType.VarChar,2);
para.Value=p.sex;
cmd.Parameters.Add(para);
para=new SqlParameter("@pbirth",SqlDbType.SmallDateTime,4);
para.Value=Convert.ToDateTime(p.birth).ToShortDateString();
cmd.Parameters.Add(para);
para=new SqlParameter("@pwork",SqlDbType.VarChar,50);
para.Value=p.work;
cmd.Parameters.Add(para);
para=new SqlParameter("@phome",SqlDbType.VarChar,50);
para.Value=p.home;
cmd.Parameters.Add(para);
para=new SqlParameter("@ptel",SqlDbType.VarChar,15);
para.Value=p.tel;
cmd.Parameters.Add(para);
para=new SqlParameter("@precord",SqlDbType.VarChar,20);
para.Value=p.record;
cmd.Parameters.Add(para);
para=new SqlParameter("@pheadimage",SqlDbType.VarChar,50);
para.Value=p.headimage;
cmd.Parameters.Add(para);
para=new SqlParameter("@phobby",SqlDbType.VarChar,20);
para.Value=p.hobby;
cmd.Parameters.Add(para);
cmd.ExecuteNonQuery();
return true;
}
catch(Exception e)
{
return false;
}
}


//前台代码:
SqlConnection con=DBCON.ClientCreateCon();
SqlCommand cmd=new SqlCommand("select clid from clientloadinformation",con);
con.Open();
cmd.CommandText="select cid from clientinformation";
int b=Convert.ToInt32(cmd.ExecuteScalar());
people p=new people();
p.cid=b+1;
p.truename=this.trueName.Text;
p.sex=this.RadioButtonList2.SelectedItem.Text;
p.birth=this.txtbirth.Text;
p.work=this.workAddr.Text;
p.home=this.homeAddr.Text;
p.tel=this.Tel.Text;
p.record=this.ddlrecord.SelectedItem.Text;
p.headimage=this.Image1.ImageUrl;
p.hobby=this.CheckBoxList1.SelectedItem.Text;
if(option.insertpeople(p))
{
Response.Write("插入成功");
}
else
{
Response.Write("插入失败");
}
cmd.ExecuteNonQuery();
con.Close();



结果:插入失败!!!晕!
...全文
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfl011227 2009-11-16
  • 打赏
  • 举报
回复
大家帮下忙吧!!
jfl011227 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ivws_19 的回复:]
第一个字段是int,LZ插入的是varchar
[/Quote]

已经改过了,还是不行!!
jfl011227 2009-11-16
  • 打赏
  • 举报
回复
大哥们,我调试成功,就是执行后显示插入失败!!!

在数据库中查找,也是没插入啊!!
ivws_19 2009-11-16
  • 打赏
  • 举报
回复
第一个字段是int,LZ插入的是varchar
jfl011227 2009-11-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yang_5 的回复:]
第一个参数的类型改为int类型看看行不

SqlParameter para=new SqlParameter("@pID",SqlDbType.Int,4);
[/Quote]
还是不行啊!!
显示插入失败!!
就没执行到Return true;这条语句。
yang_5 2009-11-16
  • 打赏
  • 举报
回复
LZ 你应该给错错误的信息,最好自己先调试在发问题!
dxh1988 2009-11-16
  • 打赏
  • 举报
回复
发点言哈,我觉得 SqlParameter para=new SqlParameter("@pID",SqlDbType.VarChar,4);
的数据类型不对头
yan267 2009-11-16
  • 打赏
  • 举报
回复
还是某些字段长度不够??报什么错误啊
yang_5 2009-11-16
  • 打赏
  • 举报
回复
第一个参数的类型改为int类型看看行不

SqlParameter para=new SqlParameter("@pID",SqlDbType.Int,4);
yang_5 2009-11-16
  • 打赏
  • 举报
回复
失败的错误是?
yang_5 2009-11-16
  • 打赏
  • 举报
回复
select * from tab_1 where id = (select max(id) from tab_1)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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