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