首先我们来看一个简单的插入操作:
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> TestDataContext dc = new TestDataContext();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> protected void Page_Load(object sender, EventArgs e)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> tbl_User user = new tbl_User();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> user.uname = "徐越";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> user.upwd = "111";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> dc.tbl_User.InsertOnSubmit(user);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> dc.SubmitChanges();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong>int id = user.uid;<br></strong><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
int id = user.uid 这句话就能拿到刚刚插入的值!这么神奇,为什么呢?
<wbr></wbr>
1 首先我们在数据库中对uid设置的时候,就设置它为主键,然后为表示列,自增长,种子是1,增长量是1等。
2 那么我们把数据表拖到VS上来,我们不只要会拖,还要会看。
<wbr></wbr>
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_uid", AutoSync=AutoSync.OnInsert,DbType="Int NOT NULL IDENTITY",IsPrimaryKey=true, IsDbGenerated=true)]
<wbr><wbr>public int uid<br><wbr><wbr>{<br><wbr><wbr><wbr>get<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>return this._uid;<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>set<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>if ((this._uid != value))<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>this.OnuidChanging(value);<br><wbr><wbr><wbr><wbr><wbr>this.SendPropertyChanging();<br><wbr><wbr><wbr><wbr><wbr>this._uid = value;<br><wbr><wbr><wbr><wbr><wbr>this.SendPropertyChanged("uid");<br><wbr><wbr><wbr><wbr><wbr>this.OnuidChanged();<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
AutoSync=AutoSync.OnInsert 表示在插入式自动同步,
IsDbGenerated表示是数据库自动生成的值。
这样才能那么神奇!懂了吧。
<wbr></wbr>
我们当然也可以通过可视化视图来设置这些属性。


如果是纯sql获得这个id就复杂一点,请参看本博客另一篇:
《Sql Server中如何取得刚刚插入的自增长的id值》
http://blog.youkuaiyun.com/woshixuye/article/details/7089551
本文详细解析了数据库插入操作后获取自增ID值的原理,包括数据库设置、属性配置及自动同步机制。并通过代码实例展示了如何在.NET环境中实现此功能,并对比了SQL查询获取ID的不同方式。
1978

被折叠的 条评论
为什么被折叠?



