01.
public
string
GetNewEmployee_ID(
string
varConnectionString)
02.
{
03.
04.
string
iStr =
string
.Empty;
05.
System.Text.StringBuilder cmdBuilder =
new
System.Text.StringBuilder();
06.
07.
cmdBuilder.AppendLine(
"DECLARE @Counter AS BIGINT ;"
);
08.
cmdBuilder.AppendLine(
"DECLARE @MaxCounter AS BIGINT ;"
);
09.
cmdBuilder.AppendLine(
"DECLARE @Temp AS INT ;"
);
10.
cmdBuilder.AppendLine(
"DECLARE @IDPrefix AS Varchar(10);"
);
11.
cmdBuilder.AppendLine(
"DECLARE @TempStr AS Varchar(MAX);"
);
12.
cmdBuilder.AppendLine();
13.
cmdBuilder.AppendLine(
"SET @IDPrefix = 'EMP-' ;"
);
14.
cmdBuilder.AppendLine(
"SET @Counter = 0 ;"
);
15.
cmdBuilder.AppendLine(
"SET @MaxCounter = 999999999999 ;"
);
16.
cmdBuilder.AppendLine();
17.
cmdBuilder.AppendLine(
"SELECT @TempStr = MAX([Employee_id]) FROM [Employee] ;"
);
18.
cmdBuilder.AppendLine();
19.
cmdBuilder.AppendLine(
"IF (LEN(@TempStr)>0) "
);
20.
cmdBuilder.AppendLine(
"BEGIN"
);
21.
cmdBuilder.AppendLine(
" SET @TempStr = SUBSTRING(LEN(@IDPrefix) +1,LEN(@TempStr));"
);
22.
cmdBuilder.AppendLine(
" SET @Counter = CONVERT(BIGINT ,@TempStr) ;"
);
23.
cmdBuilder.AppendLine(
"END "
);
24.
cmdBuilder.AppendLine(
"ELSE"
);
25.
cmdBuilder.AppendLine(
" SET @Counter = 0 ;"
);
26.
cmdBuilder.AppendLine();
27.
cmdBuilder.AppendLine(
"SET @Counter = @Counter +1 ;"
);
28.
cmdBuilder.AppendLine(
"IF (@Counter > @MaxCounter)"
);
29.
cmdBuilder.AppendLine(
" SET @Counter = 1 ;"
);
30.
cmdBuilder.AppendLine();
31.
cmdBuilder.AppendLine(
"-- FORMAT DATA FOR OUTPUT"
);
32.
cmdBuilder.AppendLine(
"SET @Temp = LEN(@MaxCounter) ;"
);
33.
cmdBuilder.AppendLine(
"SET @TempStr = CONVERT(VARCHAR ,@Counter) ;"
);
34.
cmdBuilder.AppendLine();
35.
cmdBuilder.AppendLine(
"IF (LEN(@TempStr) < @Temp)"
);
36.
cmdBuilder.AppendLine(
" SET @TempStr = REPLICATE('0' ,@Temp - LEN(@TempStr)) + @TempStr ;"
);
37.
cmdBuilder.AppendLine();
38.
cmdBuilder.AppendLine(
"SET @TempStr = @IDPrefix + @TempStr ;"
);
39.
cmdBuilder.AppendLine();
40.
cmdBuilder.AppendLine(
"SELECT @TempStr ;"
);
41.
42.
using
(System.Data.SqlClient.SqlConnection myConnection =
new
System.Data.SqlClient.SqlConnection(varConnectionString)) {
43.
44.
System.Data.SqlClient.SqlCommand myCmd =
new
System.Data.SqlClient.SqlCommand(cmdBuilder.ToString(), myConnection);
45.
try
{
46.
myConnection.Open();
47.
iStr = myCmd.ExecuteScalar().ToString();
48.
}
catch
(Exception ex) {
49.
iStr =
"#Error"
;
50.
}
51.
}
52.
53.
return
iStr;
54.
55.
}