linq to sql插入操作取回自增的ID
首先我們來看一個簡單的插入操作:
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值》
https://blog.sina.com.cn/s/blog_67aaf4440100w7ns.html
最後更新:2017-04-02 22:15:57