插入前就知道数据库记录的ID号?(有插入的同时得到ID的例子)

ponymzh 2010-01-05 07:54:28
sqlcommand.CommandText = "insert into pic(photo) values (@photo);select @@IDENTITY";

sqlcommand.Parameters.AddWithValue("@photo", sid+".jpg");
sid = sqlcommand.ExecuteScalar().ToString();//这里是删入的同时已得到了ID

sqlcommand.CommandText = "update pic set photo='" + sid + ".jpg' where id=" + sid;
Response.Write("ff"+sid);
sqlcommand.ExecuteNonQuery();
//Response.Write(theid);
if (FileUpload1.HasFile == true)
{
FileUpload1.SaveAs(Server.MapPath(("~/image/") + sid + ".jpg"));
}
Label1.Text = "成功增加记录";

这个例子是插入后才得到了ID数据,怎么才可以在插入前就知道ID数据,ID是int自增型,最好不要再查一次数据库,
sqlcommand.CommandText = “insert into pic(数据库中的新ID数) values (@photo); ”
一次就可完成!
有没有这种方法?
sql="execute sp_insertproduct '" &chrproductname & "','" &txtdescription &"','" &chrproductimage &"',"&intprice &","&intactive & ";select @@identity as 'id'"
set rsproduct=dbproduct.execute(sql)
set rsproduct=rsproduct.nextrecordset
response.write rsproduct("id")
...全文
194 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ponymzh 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 cailee 的回复:]
guid插入前就可以知道了,自增的怎么知道?
[/Quote]
guid又是什么呀?
cailee 2010-01-06
  • 打赏
  • 举报
回复
guid插入前就可以知道了,自增的怎么知道?
yan267 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xiongshao1943 的回复:]
这个预先也不可能不知道,无法保证每次插入的都成功。又怎么去预测呢
[/Quote]

id自增不管。。。。。。
多建立一个字段用作主键。例如订单号一样,按照一定逻辑拼出来,这个容易控制多了
xiongshao1943 2010-01-06
  • 打赏
  • 举报
回复
这个预先也不可能不知道,无法保证每次插入的都成功。又怎么去预测呢
三碗猪脚 2010-01-06
  • 打赏
  • 举报
回复
预先生成。。。
polarissky 2010-01-05
  • 打赏
  • 举报
回复
楼主想插入新纪录前就得到ID,可以考虑GUID做主键,插入新纪录前生成一个GUID,然后写入数据表。
newdigitime 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ponymzh 的回复:]
引用 2 楼 wuyq11 的回复:
select max(Id) from Tb

这就多了一个Select语句了!asp就可以这么做的,还没插入就已可知他的ID了!
[/Quote]
你插入一条记录,再删除,再插入一条,id号就不是你想像中的了
ponymzh 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wiki14 的回复:]
insert into pic(数据库中的新ID数) values (@photo) select @@identity
当运行完插入语句后,执行select @@identity就可得到自动生成的id

插入前?
[/Quote]
这个功能我已得了,谢谢!
ponymzh 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
select max(Id) from Tb
[/Quote]
这就多了一个Select语句了!asp就可以这么做的,还没插入就已可知他的ID了!
newdigitime 2010-01-05
  • 打赏
  • 举报
回复
插入前,应该不好办.

即使你把最新的一条记录再加上1也可能不准确.
wiki14 2010-01-05
  • 打赏
  • 举报
回复
insert into pic(数据库中的新ID数) values (@photo) select @@identity
当运行完插入语句后,执行select @@identity就可得到自动生成的id

插入前?
wuyq11 2010-01-05
  • 打赏
  • 举报
回复
select max(Id) from Tb
bancxc 2010-01-05
  • 打赏
  • 举报
回复
插入前不行的吧

62,254

社区成员

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

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

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

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