Что мне нужно, это сохранить данные в таблице и наконец вернуть это значение .. Вот что происходит, когда он возвращает это значение, но не сохраняется в таблице.
Вот код
using (SqlConnection Conn = new SqlConnection(constr_str)) {
using (SqlCommand cmd = new SqlCommand()) {
cmd.Connection = Conn;
Conn.Open();
cmd.CommandText = "Declare @Len int Select @Len =LEN(@CustomerCode) Begin declare @Id varchar(20) select @Id = RequestId from Rode_Provisioning_Process if @Id is null Begin insert into Rode_Provisioning_Process(CustomerCode,RequestType,RequestId,Status,CreatedDate,ModifiedDate) values(@CustomerCode,@RequestType,@CustomerCode+'0001',null,getdate(),getdate()) return End Else declare @max varchar(20) select @max = max(cast(substring(RequestId , @len+1, 4) as int)) from Rode_Provisioning_Process (nolock) select @max = isnull(@max, 0) + 1 select @max = (case when len(@max) = 1 then '000' + @max when len(@max) = 2 then '00' + @max when len(@max) = 3 then '0' + @max else @max end) select @max\tdeclare @number varchar(20) Select @number = (Substring( @CustomerCode, 1, PatIndex( '%[0-9]%', RequestId) - 1 ) + @max) from Rode_Provisioning_Process select @number insert into Rode_Provisioning_Process(CustomerCode,RequestType,RequestId,Status,CreatedDate,ModifiedDate) values(@CustomerCode,@RequestType,@number,null,getdate(),getdate()) end";
cmd.Parameters.Add("@CustomerCode", SqlDbType.VarChar).Value = CustomerCode;
cmd.Parameters.Add("@RequestType", SqlDbType.VarChar).Value = RequestType;
cmd.ExecuteNonQuery();
cmd.CommandText = "Select RequestId from Rode_Provisioning_Process where CustomerCode=@CustomerCode";
cmd.Parameters.Add("@CustomerCode", SqlDbType.VarChar).Value = CustomerCode;
string RequestId = cmd.ExecuteScalar();
Conn.Close();
return RequestId;
}
}
Есть предложения?