[SQL ] SqlCeCommand.ExecuteScalar Insert回傳0

看板Database作者 (滿滿的)時間12年前 (2013/07/03 15:14), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
小弟是使用 C# 連結 SQL Compact Edtition 想要在 Insert 之後馬上取得新增的資料 ID 因此使用了 SqlCeCommand.ExecuteScalar() 參考網路上的說明 應該是會回傳我剛剛 Insert 的 ID 實際用起來 這個 function 總是回傳 Null 但資料確實有 Insert 進去沒錯 我的 SQL 語法是這樣的 INSERT INTO schedule (name, on_hour, on_minute, off_hour, enabled, off_minute) VALUES (@name,@on_hour,@on_minute,@off_hour,@enabled,@off_minute) 完整的 C# 程式碼如下 string sql = @" INSERT INTO schedule (name, on_hour, on_minute, off_hour, enabled, off_minute) VALUES (@name,@on_hour,@on_minute,@off_hour,@enabled,@off_minute) "; SqlCeCommand cmd = _connection.CreateCommand(); cmd.CommandText = sql; cmd.Parameters.AddWithValue("@name", schedule.name); cmd.Parameters.AddWithValue("@on_hour", schedule.on_hour); cmd.Parameters.AddWithValue("@on_minute", schedule.on_minute); cmd.Parameters.AddWithValue("@off_hour", schedule.off_hour); cmd.Parameters.AddWithValue("@off_minute", schedule.off_minute); cmd.Parameters.AddWithValue("@enabled", schedule.enabled); return Convert.ToInt32(cmd.ExecuteScalar()); 一直回傳 Null 然後經過 Convert 變成 0 ... 不知道版上有沒有跟我一樣經驗的 可以替小弟解惑 感謝 ~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.183.60

07/03 19:30, , 1F
sql後面要加 ;SELECT CAST(scope_identity() AS int);
07/03 19:30, 1F

07/03 22:26, , 2F
我是在後面加上 SELECT @@identity
07/03 22:26, 2F
文章代碼(AID): #1Hqyz6Fg (Database)