我試圖獲取「Cp-00001」之類的公司ID。如果在表中存在的數據,則ID應該是 「CP-00001」 + 1 = 「CP = 00002」 和做...存儲過程中的自動增量Id不起作用
這是我到目前爲止有:
CREATE PROCEDURE [dbo].[sp_AutoGenerateCustomerCode]
AS
DECLARE @id VARCHAR(10)
BEGIN
SELECT @id = 'Cp-' + CAST(MAX(CAST(SUBSTRING(CompanyCode,4,5) AS INTEGER))+1 AS VARCHAR) FROM [Beauty Saloon Project].[dbo].[tbl_Company];
IF @id IS NULL
BEGIN
SET @id = 'Cp-00001';
END
RETURN @id;
END
但是當我在這裏稱呼它
datatable DT = new datatable
DT = ExecuteSpDataTable("sp_AutoGenerateCustomerCode");
這返回null
。
如果我沒有數據,那麼它應該返回Cp-00001,但我有一個數據行,其中公司代碼是轎車是它的原因是什麼?
編輯:
public DataTable ExecuteSpDataTable(string SPName)
{
try
{
if (ConnectionOpen())
{
SqlCommand objSqlCommand = new SqlCommand(SPName, objConnection);
objSqlCommand.CommandType = CommandType.StoredProcedure;
objSqlCommand.CommandTimeout = 10000;
SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter();
DataTable objDataTable = new DataTable();
objSqlDataAdapter.SelectCommand = objSqlCommand;
objSqlDataAdapter.Fill(objDataTable);
ConnectionClose();
return objDataTable;
}
return null;
}
catch (Exception ex)
{
objErrorLogs.LogError(ex);
return null;
}
}
爲什麼不只是創建一個自動遞增的數字標識列?你試圖推出自己的產品,爲自己的痛苦而努力。 –
問題顯然是在你的C#代碼,因爲你描述的存儲過程永遠不會返回NULL – jazzytomato
某些時候需要穹頂的東西其他明智我不會做它只是頭痛: –