首先,簡要介紹一下我們需要什麼? 我們想在sql中用 try...catch,如果成功,就返回我們查詢的值,如果失敗就返回-1 所以有了以下sql語句(寫在後臺的) Sql語句已經寫好,現在就是需要獲取到這個@result,後臺代碼可以參考一下 註:此篇隨筆只供參考使用,而且也有很多小瑕疵,最主要的 ...
首先,簡要介紹一下我們需要什麼?
我們想在sql中用 try...catch,如果成功,就返回我們查詢的值,如果失敗就返回-1
所以有了以下sql語句(寫在後臺的)
string myInsert = @"begin try insert into dbo.Categories values(@categoryName); set @result = (select @@identity id); //設置成功返回值,這兒是我們查詢自增id end try begin catch set @result = -1;//設置失敗返回值-1 end catch";
Sql語句已經寫好,現在就是需要獲取到這個@result,後臺代碼可以參考一下
//定義一個資料庫執行指令 SqlCommand insertCommand = new SqlCommand(myInsert, myConnection); //添加集合 insertCommand.Parameters.Add(new SqlParameter() { ParameterName = "categoryName", Value = catename}); //獲取到result返回值,主要是這個Output insertCommand.Parameters.Add("@result", SqlDbType.Int).Direction = ParameterDirection.Output; insertCommand.ExecuteNonQuery();
//這個DataConvert.ToInt32是自定義方法,是把查詢到的object對象轉換為int int result = DataConvert.ToInt32(insertCommand.Parameters["@result"].Value); if (result > 0) { categoryinfo.ID = result; }
註:此篇隨筆只供參考使用,而且也有很多小瑕疵,最主要的不是代碼,邏輯才是最重要的。