我在SQL存儲過程中,與編碼:試圖尋找在C#的形式從存儲過程值必須返回值
SELECT TOP 1 Intrecno FROM MainCallProblems
ORDER BY Intrecno DESC
,我在我的C#代碼中使用:
long oldVal = ExecuteDataReader<MainCallProblems>("spGetMainCallProblemRefNo", null, typeof(MainCallProblems));.First().Intrecno;
請注意數據庫中的Intrecno字段是我的主鍵,一個bigint並且是一個標識(1,1)。
這用於服務,返回一個值。目前,表格中沒有任何內容可以調用,沒有數據。
那麼如何找出是否沒有數據?返回值,這也是在SQL表類型是一個長變量\ BIGINT
我曾嘗試:
long newVal = 0;
long oldVal = 0;
// Generates list to see if there is anything stored within. If not, makes the first value 1
List<MainCallProblems> mainCallProblemsList = ExecuteDataReader<MainCallProblems>("spGetMainCallProblemRefNo", null, typeof(MainCallProblems));
if (mainCallProblemsList != null)
{
oldVal = mainCallProblemsList.First().Intrecno;
newVal = oldVal + 1;
}
else
{
newVal = 1;
}
return newVal;
據說這是爲了看看有沒有在表中任何東西。如果不是,則返回是一個簡單的1.如果存在,數據將被加載,修改並返回。 但是運行時,我得到一個錯誤:
原因=「System.InvalidOperationException:序列不包含任何元素\ r \ n在System.Linq.Enumerable.First [TSource](IEnumerable`1源)\ r \ ñ在GetMainCallProblemRefNo(個)\ r \ n在GetMainCallProblemRefNoResponse
不要擔心完整的錯誤。只知道有什麼在表中,將其返回的錯誤。它甚至沒有經過if語句來分配數據
如何糾正此錯誤,而無需手動添加默認值在表中排。 IE:
insert into MainCallProblems(Assistant)
values('Joe')
完美。非常感謝 –