恐怖的陷阱

幾天前不小心踩進去的陷阱

給大家看看

幾天前不小心踩進去的陷阱

給大家看看

 

_cmd.Transaction = _tans;
_cmd.CommandText = @"
        INSERT [USER](ACCOUNT,PASSWORD,INTERNAL,ACTIVE)
        VALUES(@ACCOUNT,@PASSWORD,0,0);SELECT SCOPE_IDENTITY()";
_cmd.Parameters.AddWithValue("ACCOUNT", ACCOUNT.Text);
_cmd.Parameters.AddWithValue("@PASSWORD", PASSWORD.Text);
try {
    InsertCount = _cmd.ExecuteNonQuery();
    user_no = _cmd.ExecuteScalar().ToString();
} catch (Exception) {
    showMsg("新增個人基本資料失敗");
}

 

看出來會怎樣了嗎?

看不出來的可以在看一下這篇

SqlCommand.ExecuteScalar 方法

沒錯!

每次update我都莫名其妙新增了兩筆資料Orz真是一整個

因為我想要insert後順便抓最新一筆的資料所以這樣做...

正確的做法應該是直接用變數去接SqlCommand.ExecuteScalar()在確定不為null後轉型即可

浪費我30分鐘/美好人生

應該不會有人犯這種錯吧...

用method前還是看一下MSDN比較保險